From 2057f82161dec05cb23535da713ec0fae44c38d1 Mon Sep 17 00:00:00 2001 From: Sasha Smundak Date: Tue, 16 Apr 2019 17:16:58 -0700 Subject: 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 --- java/java.go | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'java/java.go') diff --git a/java/java.go b/java/java.go index 7768756ec..2cf9267fb 100644 --- a/java/java.go +++ b/java/java.go @@ -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...) } -- cgit v1.2.3-59-g8ed1b