summaryrefslogtreecommitdiff
path: root/java/java.go
diff options
context:
space:
mode:
author Treehugger Robot <treehugger-gerrit@google.com> 2020-01-25 00:38:19 +0000
committer Gerrit Code Review <noreply-gerritcodereview@google.com> 2020-01-25 00:38:19 +0000
commitcf52e102cece2c72659774f019239798e350fb16 (patch)
tree5fbc06fe320a42ee369fa75353c66d74d61d87f6 /java/java.go
parenta8c82cc218219741d3de7ae9a5385aa77c95c42f (diff)
parent335d596384a84ecfda0161500806eb9b1cc8a668 (diff)
Merge changes from topic "dex2oat-soong-dep"
* changes: Get the dex2oat host tool path from module dependency on the binary module. Move the Once cache for dexpreopt.GlobalConfig into the dexpreopt package. Separate dexpreopt.GlobalSoongConfig to allow independent caching of it.
Diffstat (limited to 'java/java.go')
-rw-r--r--java/java.go16
1 files changed, 16 insertions, 0 deletions
diff --git a/java/java.go b/java/java.go
index 4c6a5a5ac..320cb7b55 100644
--- a/java/java.go
+++ b/java/java.go
@@ -29,6 +29,7 @@ import (
"github.com/google/blueprint/proptools"
"android/soong/android"
+ "android/soong/dexpreopt"
"android/soong/java/config"
"android/soong/tradefed"
)
@@ -79,6 +80,8 @@ func RegisterJavaBuildComponents(ctx android.RegistrationContext) {
ctx.RegisterModuleType("java_host_for_device", HostForDeviceFactory)
ctx.RegisterModuleType("dex_import", DexImportFactory)
+ ctx.FinalDepsMutators(dexpreopt.RegisterToolDepsMutator)
+
ctx.RegisterSingletonType("logtags", LogtagsSingleton)
ctx.RegisterSingletonType("kythe_java_extract", kytheExtractJavaFactory)
}
@@ -335,6 +338,7 @@ type Module struct {
android.DefaultableModuleBase
android.ApexModuleBase
android.SdkBase
+ dexpreopt.DexPreoptModule
properties CompilerProperties
protoProperties android.ProtoProperties
@@ -1525,6 +1529,16 @@ func (j *Module) compile(ctx android.ModuleContext, aaptSrcJar android.Path) {
}
} else {
outputFile = implementationAndResourcesJar
+
+ // dexpreopt.GetGlobalSoongConfig needs to be called at least once even if
+ // no module actually is dexpreopted, to ensure there's a cached
+ // GlobalSoongConfig for the dexpreopt singletons, which will run
+ // regardless.
+ // TODO(b/147613152): Remove when the singletons no longer rely on the
+ // cached GlobalSoongConfig.
+ if !dexpreopt.GetGlobalConfig(ctx).DisablePreopt {
+ _ = dexpreopt.GetGlobalSoongConfig(ctx)
+ }
}
ctx.CheckbuildFile(outputFile)
@@ -2275,6 +2289,7 @@ type Import struct {
android.ApexModuleBase
prebuilt android.Prebuilt
android.SdkBase
+ dexpreopt.DexPreoptModule
properties ImportProperties
@@ -2477,6 +2492,7 @@ type DexImport struct {
android.DefaultableModuleBase
android.ApexModuleBase
prebuilt android.Prebuilt
+ dexpreopt.DexPreoptModule
properties DexImportProperties