Add new compat_configs property to the apex am: 3abc174cfd am: d4716ce5a6

Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1638279

Change-Id: I3822016f85c030f27820538ba133ec007861417c
This commit is contained in:
Paul Duffin
2021-03-16 08:05:09 +00:00
committed by Automerger Merge Worker
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. // List of prebuilt files that are embedded inside this APEX bundle.
Prebuilts []string 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. // List of BPF programs inside this APEX bundle.
Bpfs []string Bpfs []string
@@ -555,6 +558,7 @@ var (
executableTag = dependencyTag{name: "executable", payload: true} executableTag = dependencyTag{name: "executable", payload: true}
fsTag = dependencyTag{name: "filesystem", payload: true} fsTag = dependencyTag{name: "filesystem", payload: true}
bootImageTag = dependencyTag{name: "bootImage", payload: true} bootImageTag = dependencyTag{name: "bootImage", payload: true}
compatConfigsTag = dependencyTag{name: "compatConfig", payload: true}
javaLibTag = dependencyTag{name: "javaLib", payload: true} javaLibTag = dependencyTag{name: "javaLib", payload: true}
jniLibTag = dependencyTag{name: "jniLib", payload: true} jniLibTag = dependencyTag{name: "jniLib", payload: true}
keyTag = dependencyTag{name: "key"} keyTag = dependencyTag{name: "key"}
@@ -731,6 +735,13 @@ func (a *apexBundle) DepsMutator(ctx android.BottomUpMutatorContext) {
{Mutator: "arch", Variation: archForPrebuiltEtc.String()}, {Mutator: "arch", Variation: archForPrebuiltEtc.String()},
}, prebuiltTag, a.properties.Prebuilts...) }, 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 // Common-arch dependencies come next
commonVariation := ctx.Config().AndroidCommonTarget.Variations() commonVariation := ctx.Config().AndroidCommonTarget.Variations()
ctx.AddFarVariationDependencies(commonVariation, bootImageTag, a.properties.Boot_images...) ctx.AddFarVariationDependencies(commonVariation, bootImageTag, a.properties.Boot_images...)
@@ -1740,6 +1751,12 @@ func (a *apexBundle) GenerateAndroidBuildActions(ctx android.ModuleContext) {
} else { } else {
ctx.PropertyErrorf("prebuilts", "%q is not a prebuilt_etc and not a platform_compat_config module", depName) 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: case testTag:
if ccTest, ok := child.(*cc.Module); ok { if ccTest, ok := child.(*cc.Module); ok {
if ccTest.IsTestPerSrcAllTestsVariation() { if ccTest.IsTestPerSrcAllTestsVariation() {

View File

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