Fix the unbundled mainline module build
This change fixes two problems: 1) the prebuilt apexes are force disabled for the unbundled builds because we need to build the modules from the source then 2) the dependencies from an sdk_library module to *.stubs.{public|system|tests} are not added for the unbundled build because the stubs modules are disabled. Bug: 137282010 Test: unbundled mainline builds are successful Test: build com.android.media and inspect the jar file to see if hiddenapi flags are there $ cd out/dist/mainline_modules_arm $ unzip com.android.media.apex apex_payload.img $ mkdir -p mnt $ sudo mount -o ro,loop apex_payload.img mnt $ dexdump2 mnt/javalib/updatable-media.jar | grep hiddenapi shows results Change-Id: I2c00af07aac4a15770d3acab011a36e2e4803bfc
This commit is contained in:
11
apex/apex.go
11
apex/apex.go
@@ -1433,10 +1433,13 @@ func (p *Prebuilt) installable() bool {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (p *Prebuilt) DepsMutator(ctx android.BottomUpMutatorContext) {
|
func (p *Prebuilt) DepsMutator(ctx android.BottomUpMutatorContext) {
|
||||||
// If the device is configured to use flattened APEX, don't set
|
// If the device is configured to use flattened APEX, force disable the prebuilt because
|
||||||
// p.properties.Source so that the prebuilt module (which is
|
// the prebuilt is a non-flattened one.
|
||||||
// a non-flattened APEX) is not used.
|
forceDisable := ctx.Config().FlattenApex()
|
||||||
forceDisable := ctx.Config().FlattenApex() && !ctx.Config().UnbundledBuild()
|
|
||||||
|
// Force disable the prebuilts when we are doing unbundled build. We do unbundled build
|
||||||
|
// to build the prebuilts themselves.
|
||||||
|
forceDisable = forceDisable || !ctx.Config().UnbundledBuild()
|
||||||
|
|
||||||
// b/137216042 don't use prebuilts when address sanitizer is on
|
// b/137216042 don't use prebuilts when address sanitizer is on
|
||||||
forceDisable = forceDisable || android.InList("address", ctx.Config().SanitizeDevice()) ||
|
forceDisable = forceDisable || android.InList("address", ctx.Config().SanitizeDevice()) ||
|
||||||
|
@@ -97,7 +97,7 @@ func stubFlagsRule(ctx android.SingletonContext) {
|
|||||||
// Add the android.test.base to the set of stubs only if the android.test.base module is on
|
// Add the android.test.base to the set of stubs only if the android.test.base module is on
|
||||||
// the boot jars list as the runtime will only enforce hiddenapi access against modules on
|
// the boot jars list as the runtime will only enforce hiddenapi access against modules on
|
||||||
// that list.
|
// that list.
|
||||||
if inList("android.test.base", ctx.Config().BootJars()) {
|
if inList("android.test.base", ctx.Config().BootJars()) && !ctx.Config().UnbundledBuildUsePrebuiltSdks() {
|
||||||
publicStubModules = append(publicStubModules, "android.test.base.stubs")
|
publicStubModules = append(publicStubModules, "android.test.base.stubs")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -149,16 +149,21 @@ var _ Dependency = (*SdkLibrary)(nil)
|
|||||||
var _ SdkLibraryDependency = (*SdkLibrary)(nil)
|
var _ SdkLibraryDependency = (*SdkLibrary)(nil)
|
||||||
|
|
||||||
func (module *SdkLibrary) DepsMutator(ctx android.BottomUpMutatorContext) {
|
func (module *SdkLibrary) DepsMutator(ctx android.BottomUpMutatorContext) {
|
||||||
|
useBuiltStubs := !ctx.Config().UnbundledBuildUsePrebuiltSdks()
|
||||||
// Add dependencies to the stubs library
|
// Add dependencies to the stubs library
|
||||||
|
if useBuiltStubs {
|
||||||
ctx.AddVariationDependencies(nil, publicApiStubsTag, module.stubsName(apiScopePublic))
|
ctx.AddVariationDependencies(nil, publicApiStubsTag, module.stubsName(apiScopePublic))
|
||||||
|
}
|
||||||
ctx.AddVariationDependencies(nil, publicApiFileTag, module.docsName(apiScopePublic))
|
ctx.AddVariationDependencies(nil, publicApiFileTag, module.docsName(apiScopePublic))
|
||||||
|
|
||||||
sdkDep := decodeSdkDep(ctx, sdkContext(&module.Library))
|
sdkDep := decodeSdkDep(ctx, sdkContext(&module.Library))
|
||||||
if sdkDep.hasStandardLibs() {
|
if sdkDep.hasStandardLibs() {
|
||||||
|
if useBuiltStubs {
|
||||||
ctx.AddVariationDependencies(nil, systemApiStubsTag, module.stubsName(apiScopeSystem))
|
ctx.AddVariationDependencies(nil, systemApiStubsTag, module.stubsName(apiScopeSystem))
|
||||||
|
ctx.AddVariationDependencies(nil, testApiStubsTag, module.stubsName(apiScopeTest))
|
||||||
|
}
|
||||||
ctx.AddVariationDependencies(nil, systemApiFileTag, module.docsName(apiScopeSystem))
|
ctx.AddVariationDependencies(nil, systemApiFileTag, module.docsName(apiScopeSystem))
|
||||||
ctx.AddVariationDependencies(nil, testApiFileTag, module.docsName(apiScopeTest))
|
ctx.AddVariationDependencies(nil, testApiFileTag, module.docsName(apiScopeTest))
|
||||||
ctx.AddVariationDependencies(nil, testApiStubsTag, module.stubsName(apiScopeTest))
|
|
||||||
}
|
}
|
||||||
|
|
||||||
module.Library.deps(ctx)
|
module.Library.deps(ctx)
|
||||||
|
Reference in New Issue
Block a user