summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Inseob Kim <inseob@google.com> 2025-03-14 20:52:35 -0700
committer Gerrit Code Review <noreply-gerritcodereview@google.com> 2025-03-14 20:52:35 -0700
commitb8c729b78e680eaed99b167c346070622c3e5a9e (patch)
tree818963f454ef56aa4fdf0ab7b047513364a1e840
parentdd6237c72829db0e605b16f2496fd3545e9f1e5d (diff)
parent0c67c8ed894dfece5035d28e3c6a0eca6c799495 (diff)
Merge "Move requiredDeps to OverridableDepsMutator" into main
-rw-r--r--android/module.go10
-rw-r--r--android/override_module.go1
-rw-r--r--filesystem/filesystem_test.go23
3 files changed, 32 insertions, 2 deletions
diff --git a/android/module.go b/android/module.go
index 0fba9aa63..a3fe837a5 100644
--- a/android/module.go
+++ b/android/module.go
@@ -1002,11 +1002,19 @@ func (m *ModuleBase) baseDepsMutator(ctx BottomUpMutatorContext) {
pv := ctx.Config().productVariables
fullManifest := pv.DeviceArch != nil && pv.DeviceName != nil
if fullManifest {
- addRequiredDeps(ctx)
addVintfFragmentDeps(ctx)
}
}
+// required property can be overridden too; handle it separately
+func (m *ModuleBase) baseOverridablePropertiesDepsMutator(ctx BottomUpMutatorContext) {
+ pv := ctx.Config().productVariables
+ fullManifest := pv.DeviceArch != nil && pv.DeviceName != nil
+ if fullManifest {
+ addRequiredDeps(ctx)
+ }
+}
+
// addRequiredDeps adds required, target_required, and host_required as dependencies.
func addRequiredDeps(ctx BottomUpMutatorContext) {
addDep := func(target Target, depName string) {
diff --git a/android/override_module.go b/android/override_module.go
index 50ddc9b35..96620ef7a 100644
--- a/android/override_module.go
+++ b/android/override_module.go
@@ -367,6 +367,7 @@ func checkPrebuiltReplacesOverride(ctx BottomUpMutatorContext, b OverridableModu
}
func overridableModuleDepsMutator(ctx BottomUpMutatorContext) {
+ ctx.Module().base().baseOverridablePropertiesDepsMutator(ctx)
if b, ok := ctx.Module().(OverridableModule); ok && b.Enabled(ctx) {
b.OverridablePropertiesDepsMutator(ctx)
}
diff --git a/filesystem/filesystem_test.go b/filesystem/filesystem_test.go
index 6d0b49016..bf7f5b64b 100644
--- a/filesystem/filesystem_test.go
+++ b/filesystem/filesystem_test.go
@@ -723,26 +723,47 @@ cc_library {
// override_android_* modules implicitly override their base module.
// If both of these are listed in `deps`, the base module should not be installed.
+// Also, required deps should be updated too.
func TestOverrideModulesInDeps(t *testing.T) {
result := fixture.RunTestWithBp(t, `
+ cc_library_shared {
+ name: "libfoo",
+ stl: "none",
+ system_shared_libs: [],
+ }
+ cc_library_shared {
+ name: "libbar",
+ stl: "none",
+ system_shared_libs: [],
+ }
android_filesystem {
name: "myfilesystem",
+ deps: ["myapp"],
+ }
+ android_filesystem {
+ name: "myfilesystem_overridden",
deps: ["myapp", "myoverrideapp"],
}
android_app {
name: "myapp",
platform_apis: true,
+ required: ["libfoo"],
}
override_android_app {
name: "myoverrideapp",
base: "myapp",
+ required: ["libbar"],
}
`)
partition := result.ModuleForTests(t, "myfilesystem", "android_common")
fileList := android.ContentFromFileRuleForTests(t, result.TestContext, partition.Output("fileList"))
- android.AssertStringEquals(t, "filesystem with override app", "app/myoverrideapp/myoverrideapp.apk\n", fileList)
+ android.AssertStringEquals(t, "filesystem without override app", "app/myapp/myapp.apk\nlib64/libfoo.so\n", fileList)
+
+ overriddenPartition := result.ModuleForTests(t, "myfilesystem_overridden", "android_common")
+ overriddenFileList := android.ContentFromFileRuleForTests(t, result.TestContext, overriddenPartition.Output("fileList"))
+ android.AssertStringEquals(t, "filesystem with override app", "app/myoverrideapp/myoverrideapp.apk\nlib64/libbar.so\n", overriddenFileList)
}
func TestRamdiskPartitionSetsDevNodes(t *testing.T) {