diff options
Diffstat (limited to 'apex/apex.go')
-rw-r--r-- | apex/apex.go | 45 |
1 files changed, 28 insertions, 17 deletions
diff --git a/apex/apex.go b/apex/apex.go index 3db20f465..119345aa4 100644 --- a/apex/apex.go +++ b/apex/apex.go @@ -549,24 +549,35 @@ type dependencyTag struct { // Determines if the dependent will be part of the APEX payload. Can be false for the // dependencies to the signing key module, etc. payload bool + + // True if the dependent can only be a source module, false if a prebuilt module is a suitable + // replacement. This is needed because some prebuilt modules do not provide all the information + // needed by the apex. + sourceOnly bool +} + +func (d dependencyTag) ReplaceSourceWithPrebuilt() bool { + return !d.sourceOnly } +var _ android.ReplaceSourceWithPrebuilt = &dependencyTag{} + 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} - 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} + 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} + compatConfigTag = 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 @@ -741,7 +752,7 @@ func (a *apexBundle) DepsMutator(ctx android.BottomUpMutatorContext) { ctx.AddFarVariationDependencies(commonVariation, javaLibTag, a.properties.Java_libs...) ctx.AddFarVariationDependencies(commonVariation, bpfTag, a.properties.Bpfs...) ctx.AddFarVariationDependencies(commonVariation, fsTag, a.properties.Filesystems...) - ctx.AddFarVariationDependencies(commonVariation, compatConfigsTag, a.properties.Compat_configs...) + ctx.AddFarVariationDependencies(commonVariation, compatConfigTag, a.properties.Compat_configs...) if a.artApex { // With EMMA_INSTRUMENT_FRAMEWORK=true the ART boot image includes jacoco library. @@ -1743,7 +1754,7 @@ func (a *apexBundle) GenerateAndroidBuildActions(ctx android.ModuleContext) { } else { ctx.PropertyErrorf("prebuilts", "%q is not a prebuilt_etc module", depName) } - case compatConfigsTag: + case compatConfigTag: if compatConfig, ok := child.(java.PlatformCompatConfigIntf); ok { filesInfo = append(filesInfo, apexFileForCompatConfig(ctx, compatConfig, depName)) } else { |