From e302687ea453099e7b61bf7dc585f10ea6ae97eb Mon Sep 17 00:00:00 2001 From: Colin Cross Date: Sat, 5 Jan 2019 22:30:13 -0800 Subject: Don't dexpreopt or strip java_test modules I6bb2c971cee65d2338839753aa0d84939f335b1b accidentally caused java_test modules to be dexpreopted and possibly stripped. Test: dexpreopt_test.go Change-Id: Ida8f046c509c97e38bd3bce66944d32f01530db4 --- java/java.go | 1 + 1 file changed, 1 insertion(+) (limited to 'java/java.go') diff --git a/java/java.go b/java/java.go index c02ccd347..12e724e78 100644 --- a/java/java.go +++ b/java/java.go @@ -1601,6 +1601,7 @@ func TestFactory() android.Module { &module.testProperties) module.Module.properties.Installable = proptools.BoolPtr(true) + module.Module.dexpreopter.isTest = true InitJavaModule(module, android.HostAndDeviceSupported) return module -- cgit v1.2.3-59-g8ed1b From dc2da916fb1966fe0fb7a559542aa076ba29898c Mon Sep 17 00:00:00 2001 From: Colin Cross Date: Sat, 5 Jan 2019 22:13:05 -0800 Subject: Don't dexpreopt when compile_dex but not installable Modules shouldn't be dexpreopted and possibly stripped when compile_dex is set but installable is not set. This matches the previous behavior when the dexpreopt rules were in Make. Bug: 121317615 Test: dexpreopt_test.go Change-Id: I6f80b7b37a990c475b91aa5d98a19a3baa85eb1b --- java/dexpreopt.go | 13 +++++++++---- java/dexpreopt_test.go | 10 ++++++++++ java/java.go | 1 + 3 files changed, 20 insertions(+), 4 deletions(-) (limited to 'java/java.go') diff --git a/java/dexpreopt.go b/java/dexpreopt.go index de9c5f3eb..1dc3e9fd4 100644 --- a/java/dexpreopt.go +++ b/java/dexpreopt.go @@ -28,10 +28,11 @@ import ( type dexpreopter struct { dexpreoptProperties DexpreoptProperties - installPath android.OutputPath - isPrivApp bool - isSDKLibrary bool - isTest bool + installPath android.OutputPath + isPrivApp bool + isSDKLibrary bool + isTest bool + isInstallable bool builtInstalled []string } @@ -74,6 +75,10 @@ func (d *dexpreopter) dexpreoptDisabled(ctx android.ModuleContext) bool { return true } + if !d.isInstallable { + return true + } + // TODO: contains no java code return false diff --git a/java/dexpreopt_test.go b/java/dexpreopt_test.go index e4c80ddec..6838bd2c8 100644 --- a/java/dexpreopt_test.go +++ b/java/dexpreopt_test.go @@ -109,6 +109,16 @@ func TestDexpreoptEnabled(t *testing.T) { }`, enabled: false, }, + { + name: "compile_dex", + bp: ` + java_library { + name: "foo", + srcs: ["a.java"], + compile_dex: true, + }`, + enabled: false, + }, } for _, test := range tests { diff --git a/java/java.go b/java/java.go index 12e724e78..5e67193f0 100644 --- a/java/java.go +++ b/java/java.go @@ -1326,6 +1326,7 @@ func (j *Module) compile(ctx android.ModuleContext, extraSrcJars ...android.Path j.dexJarFile = dexOutputFile + j.dexpreopter.isInstallable = Bool(j.properties.Installable) dexOutputFile = j.dexpreopt(ctx, dexOutputFile) j.maybeStrippedDexJarFile = dexOutputFile -- cgit v1.2.3-59-g8ed1b