Respect required property of apex modules

This CL fixes a bug that `required` property of apex modules is not
reflected to the generated Android.mk file.

Ignore-AOSP-First: needs to be merged together with a change in vendor
directory

Bug: N/A
Test: m nothing
Change-Id: I36ccf538882f083f9433bd3eb05b3a5127f3822b
This commit is contained in:
Jiyong Park
2021-10-28 14:26:03 +09:00
parent 7c2c7ee00d
commit 80751747e8
2 changed files with 43 additions and 0 deletions

View File

@@ -326,6 +326,9 @@ func (a *apexBundle) writeRequiredModules(w io.Writer, apexBundleName string) {
var required []string
var targetRequired []string
var hostRequired []string
required = append(required, a.RequiredModuleNames()...)
targetRequired = append(targetRequired, a.TargetRequiredModuleNames()...)
hostRequired = append(hostRequired, a.HostRequiredModuleNames()...)
installMapSet := make(map[string]bool) // set of dependency module:location mappings
for _, fi := range a.filesInfo {
required = append(required, fi.requiredModuleNames...)

View File

@@ -8330,6 +8330,46 @@ func TestAndroidMk_DexpreoptBuiltInstalledForApex_Prebuilt(t *testing.T) {
})
}
func TestAndroidMk_RequiredModules(t *testing.T) {
ctx := testApex(t, `
apex {
name: "myapex",
key: "myapex.key",
updatable: false,
java_libs: ["foo"],
required: ["otherapex"],
}
apex {
name: "otherapex",
key: "myapex.key",
updatable: false,
java_libs: ["foo"],
required: ["otherapex"],
}
apex_key {
name: "myapex.key",
public_key: "testkey.avbpubkey",
private_key: "testkey.pem",
}
java_library {
name: "foo",
srcs: ["foo.java"],
apex_available: ["myapex", "otherapex"],
installable: true,
}
`)
apexBundle := ctx.ModuleForTests("myapex", "android_common_myapex_image").Module().(*apexBundle)
data := android.AndroidMkDataForTest(t, ctx, apexBundle)
var builder strings.Builder
data.Custom(&builder, apexBundle.BaseModuleName(), "TARGET_", "", data)
androidMk := builder.String()
ensureContains(t, androidMk, "LOCAL_REQUIRED_MODULES += otherapex")
}
func TestMain(m *testing.M) {
os.Exit(m.Run())
}