fix: required property doesn't track deps to java, apex, ...
This change fixes a bug that the required property doesn't track
dependencies to modules whose arch is common.
Bug: 321000103
Bug: 321626681
Test: go test ./...
Change-Id: I3d2b3ad8cb2a9f1c5c3d5345bf05402a787f011a
diff --git a/android/module.go b/android/module.go
index f908451..89c4ddd 100644
--- a/android/module.go
+++ b/android/module.go
@@ -1074,14 +1074,22 @@
}
}
+ var deviceTargets []Target
+ deviceTargets = append(deviceTargets, ctx.Config().Targets[Android]...)
+ deviceTargets = append(deviceTargets, ctx.Config().AndroidCommonTarget)
+
+ var hostTargets []Target
+ hostTargets = append(hostTargets, ctx.Config().Targets[ctx.Config().BuildOS]...)
+ hostTargets = append(hostTargets, ctx.Config().BuildOSCommonTarget)
+
if m.Device() {
for _, depName := range m.RequiredModuleNames() {
- for _, target := range ctx.Config().Targets[Android] {
+ for _, target := range deviceTargets {
addDep(target, depName)
}
}
for _, depName := range m.HostRequiredModuleNames() {
- for _, target := range ctx.Config().Targets[ctx.Config().BuildOS] {
+ for _, target := range hostTargets {
addDep(target, depName)
}
}
@@ -1089,7 +1097,7 @@
if m.Host() {
for _, depName := range m.RequiredModuleNames() {
- for _, target := range ctx.Config().Targets[ctx.Config().BuildOS] {
+ for _, target := range hostTargets {
// When a host module requires another host module, don't make a
// dependency if they have different OSes (i.e. hostcross).
if m.Target().HostCross != target.HostCross {
@@ -1099,7 +1107,7 @@
}
}
for _, depName := range m.TargetRequiredModuleNames() {
- for _, target := range ctx.Config().Targets[Android] {
+ for _, target := range deviceTargets {
addDep(target, depName)
}
}
diff --git a/filesystem/Android.bp b/filesystem/Android.bp
index 18dd553..854a366 100644
--- a/filesystem/Android.bp
+++ b/filesystem/Android.bp
@@ -10,8 +10,9 @@
"soong",
"soong-android",
"soong-bpf", // for testing
- "soong-phony", // for testing
+ "soong-java", // for testing
"soong-linkerconfig",
+ "soong-phony", // for testing
],
srcs: [
"avb_add_hash_footer.go",
diff --git a/filesystem/filesystem_test.go b/filesystem/filesystem_test.go
index 5c780f8..3ce5d4e 100644
--- a/filesystem/filesystem_test.go
+++ b/filesystem/filesystem_test.go
@@ -23,6 +23,7 @@
"android/soong/bpf"
"android/soong/cc"
"android/soong/etc"
+ "android/soong/java"
"android/soong/phony"
"github.com/google/blueprint/proptools"
@@ -34,9 +35,12 @@
var fixture = android.GroupFixturePreparers(
android.PrepareForIntegrationTestWithAndroid,
+ android.PrepareForTestWithAndroidBuildComponents,
bpf.PrepareForTestWithBpf,
- etc.PrepareForTestWithPrebuiltEtc,
cc.PrepareForIntegrationTestWithCc,
+ etc.PrepareForTestWithPrebuiltEtc,
+ java.PrepareForTestWithJavaBuildComponents,
+ java.PrepareForTestWithJavaDefaultModules,
phony.PrepareForTestWithPhony,
PrepareForTestWithFilesystemBuildComponents,
)
@@ -88,12 +92,21 @@
phony {
name: "phony",
- required: ["libquz"],
+ required: [
+ "libquz",
+ "myapp",
+ ],
}
cc_library {
name: "libquz",
}
+
+ android_app {
+ name: "myapp",
+ platform_apis: true,
+ installable: true,
+ }
`)
// produces "myfilesystem.img"
@@ -101,6 +114,7 @@
fs := result.ModuleForTests("myfilesystem", "android_common").Module().(*filesystem)
expected := []string{
+ "app/myapp/myapp.apk",
"bin/foo",
"lib/libbar.so",
"lib64/libbar.so",