summaryrefslogtreecommitdiff
path: root/java/java.go
diff options
context:
space:
mode:
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