Fix handling optimize.enabled from java_defaults
Some module types (`android_test`, etc.) set `optimize.enabled` by default. If such module happens to have `defaults` attribute which clears `optimize.enabled`, the latter value is ignored. Fixes: 129858282 Test: unit tests in java_test.go, `atest CtsExtendedMockingTestCases` succeeds with aog/936802 reverted (that is, with cts/test/mocking converted to Android.bp) Change-Id: Ib8e3a0ab0bd489d70ed07f626082aeae31c45e7c
This commit is contained in:
@@ -228,6 +228,8 @@ type CompilerDeviceProperties struct {
|
||||
// If false, disable all optimization. Defaults to true for android_app and android_test
|
||||
// modules, false for java_library and java_test modules.
|
||||
Enabled *bool
|
||||
// True if the module containing this has it set by default.
|
||||
EnabledByDefault bool `blueprint:"mutated"`
|
||||
|
||||
// If true, optimize for size by removing unused code. Defaults to true for apps,
|
||||
// false for libraries and tests.
|
||||
@@ -257,6 +259,10 @@ type CompilerDeviceProperties struct {
|
||||
IsSDKLibrary bool `blueprint:"mutated"`
|
||||
}
|
||||
|
||||
func (me *CompilerDeviceProperties) EffectiveOptimizeEnabled() bool {
|
||||
return BoolDefault(me.Optimize.Enabled, me.Optimize.EnabledByDefault)
|
||||
}
|
||||
|
||||
// Module contains the properties and members used by all java module types
|
||||
type Module struct {
|
||||
android.ModuleBase
|
||||
@@ -460,7 +466,7 @@ func (j *Module) deps(ctx android.BottomUpMutatorContext) {
|
||||
} else if sdkDep.useModule {
|
||||
ctx.AddVariationDependencies(nil, systemModulesTag, sdkDep.systemModules)
|
||||
ctx.AddVariationDependencies(nil, bootClasspathTag, sdkDep.modules...)
|
||||
if Bool(j.deviceProperties.Optimize.Enabled) {
|
||||
if j.deviceProperties.EffectiveOptimizeEnabled() {
|
||||
ctx.AddVariationDependencies(nil, proguardRaiseTag, config.DefaultBootclasspathLibraries...)
|
||||
ctx.AddVariationDependencies(nil, proguardRaiseTag, config.DefaultLibraries...)
|
||||
}
|
||||
|
Reference in New Issue
Block a user