Add new compat_configs property to the apex

Bug: 182816033
Test: m nothing
Change-Id: I485d7b178c0ed17e336a6ac2a13e8313426f374b
This commit is contained in:
Paul Duffin 2021-03-15 19:32:23 +00:00
parent a369c7b50d
commit 3abc174cfd
2 changed files with 32 additions and 15 deletions

View File

@ -102,6 +102,9 @@ type apexBundleProperties struct {
// List of prebuilt files that are embedded inside this APEX bundle.
Prebuilts []string
// List of platform_compat_config files that are embedded inside this APEX bundle.
Compat_configs []string
// List of BPF programs inside this APEX bundle.
Bpfs []string
@ -549,20 +552,21 @@ type dependencyTag struct {
}
var (
androidAppTag = dependencyTag{name: "androidApp", payload: true}
bpfTag = dependencyTag{name: "bpf", payload: true}
certificateTag = dependencyTag{name: "certificate"}
executableTag = dependencyTag{name: "executable", payload: true}
fsTag = dependencyTag{name: "filesystem", payload: true}
bootImageTag = dependencyTag{name: "bootImage", payload: true}
javaLibTag = dependencyTag{name: "javaLib", payload: true}
jniLibTag = dependencyTag{name: "jniLib", payload: true}
keyTag = dependencyTag{name: "key"}
prebuiltTag = dependencyTag{name: "prebuilt", payload: true}
rroTag = dependencyTag{name: "rro", payload: true}
sharedLibTag = dependencyTag{name: "sharedLib", payload: true}
testForTag = dependencyTag{name: "test for"}
testTag = dependencyTag{name: "test", payload: true}
androidAppTag = dependencyTag{name: "androidApp", payload: true}
bpfTag = dependencyTag{name: "bpf", payload: true}
certificateTag = dependencyTag{name: "certificate"}
executableTag = dependencyTag{name: "executable", payload: true}
fsTag = dependencyTag{name: "filesystem", payload: true}
bootImageTag = dependencyTag{name: "bootImage", payload: true}
compatConfigsTag = dependencyTag{name: "compatConfig", payload: true}
javaLibTag = dependencyTag{name: "javaLib", payload: true}
jniLibTag = dependencyTag{name: "jniLib", payload: true}
keyTag = dependencyTag{name: "key"}
prebuiltTag = dependencyTag{name: "prebuilt", payload: true}
rroTag = dependencyTag{name: "rro", payload: true}
sharedLibTag = dependencyTag{name: "sharedLib", payload: true}
testForTag = dependencyTag{name: "test for"}
testTag = dependencyTag{name: "test", payload: true}
)
// TODO(jiyong): shorten this function signature
@ -731,6 +735,13 @@ func (a *apexBundle) DepsMutator(ctx android.BottomUpMutatorContext) {
{Mutator: "arch", Variation: archForPrebuiltEtc.String()},
}, prebuiltTag, a.properties.Prebuilts...)
// Add dependency on platform_compat_configs.
// TODO(b/182816033) - make this common-arch once all usages have been migrated.
ctx.AddFarVariationDependencies([]blueprint.Variation{
{Mutator: "os", Variation: ctx.Os().String()},
{Mutator: "arch", Variation: archForPrebuiltEtc.String()},
}, compatConfigsTag, a.properties.Compat_configs...)
// Common-arch dependencies come next
commonVariation := ctx.Config().AndroidCommonTarget.Variations()
ctx.AddFarVariationDependencies(commonVariation, bootImageTag, a.properties.Boot_images...)
@ -1740,6 +1751,12 @@ func (a *apexBundle) GenerateAndroidBuildActions(ctx android.ModuleContext) {
} else {
ctx.PropertyErrorf("prebuilts", "%q is not a prebuilt_etc and not a platform_compat_config module", depName)
}
case compatConfigsTag:
if compatConfig, ok := child.(java.PlatformCompatConfigIntf); ok {
filesInfo = append(filesInfo, apexFileForCompatConfig(ctx, compatConfig, depName))
} else {
ctx.PropertyErrorf("compat_configs", "%q is not a platform_compat_config module", depName)
}
case testTag:
if ccTest, ok := child.(*cc.Module); ok {
if ccTest.IsTestPerSrcAllTestsVariation() {

View File

@ -5995,7 +5995,7 @@ func TestCompatConfig(t *testing.T) {
apex {
name: "myapex",
key: "myapex.key",
prebuilts: ["myjar-platform-compat-config"],
compat_configs: ["myjar-platform-compat-config"],
java_libs: ["myjar"],
updatable: false,
}