aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--android/package_ctx.go18
-rw-r--r--java/config/config.go17
-rw-r--r--java/config/makevars.go2
3 files changed, 31 insertions, 6 deletions
diff --git a/android/package_ctx.go b/android/package_ctx.go
index 6743fb3f..f781dd44 100644
--- a/android/package_ctx.go
+++ b/android/package_ctx.go
@@ -117,15 +117,23 @@ func (p AndroidPackageContext) SourcePathVariableWithEnvOverride(name, path, env
// package-scoped variable's initialization.
func (p AndroidPackageContext) HostBinToolVariable(name, path string) blueprint.Variable {
return p.VariableFunc(name, func(config interface{}) (string, error) {
- ctx := &configErrorWrapper{p, config.(Config), []error{}}
- p := PathForOutput(ctx, "host", ctx.config.PrebuiltOS(), "bin", path)
- if len(ctx.errors) > 0 {
- return "", ctx.errors[0]
+ po, err := p.HostBinToolPath(config, path)
+ if err != nil {
+ return "", err
}
- return p.String(), nil
+ return po.String(), nil
})
}
+func (p AndroidPackageContext) HostBinToolPath(config interface{}, path string) (Path, error) {
+ ctx := &configErrorWrapper{p, config.(Config), []error{}}
+ pa := PathForOutput(ctx, "host", ctx.config.PrebuiltOS(), "bin", path)
+ if len(ctx.errors) > 0 {
+ return nil, ctx.errors[0]
+ }
+ return pa, nil
+}
+
// HostJavaToolVariable returns a Variable whose value is the path to a host
// tool in the frameworks directory for host targets. It may only be called
// during a Go package's initialization - either from the init() function or as
diff --git a/java/config/config.go b/java/config/config.go
index eb71ddb6..f4abd37d 100644
--- a/java/config/config.go
+++ b/java/config/config.go
@@ -77,7 +77,22 @@ func init() {
pctx.SourcePathVariable("JarArgsCmd", "build/soong/scripts/jar-args.sh")
pctx.HostBinToolVariable("SoongZipCmd", "soong_zip")
pctx.HostBinToolVariable("MergeZipsCmd", "merge_zips")
- pctx.HostBinToolVariable("DxCmd", "dx")
+ pctx.VariableFunc("DxCmd", func(config interface{}) (string, error) {
+ dexer := "dx"
+ if config.(android.Config).Getenv("USE_D8") == "true" {
+ dexer = "d8"
+ }
+ if config.(android.Config).UnbundledBuild() {
+ return "prebuilts/build-tools/common/bin/" + dexer, nil
+ } else {
+ path, err := pctx.HostBinToolPath(config, dexer)
+ if err != nil {
+ return "", err
+ }
+ return path.String(), nil
+ }
+ })
+
pctx.HostJavaToolVariable("JarjarCmd", "jarjar.jar")
pctx.HostJavaToolVariable("DesugarJar", "desugar.jar")
diff --git a/java/config/makevars.go b/java/config/makevars.go
index 6b495924..2735242f 100644
--- a/java/config/makevars.go
+++ b/java/config/makevars.go
@@ -43,6 +43,8 @@ func makeVarsProvider(ctx android.MakeVarsContext) {
ctx.Strict("JAR_ARGS", "${JarArgsCmd}")
ctx.Strict("JAVADOC", "${JavadocCmd}")
ctx.Strict("COMMON_JDK_FLAGS", "${CommonJdkFlags}")
+ ctx.Strict("DX", "${DxCmd}")
+ ctx.Strict("DX_COMMAND", "${DxCmd} -JXms16M -JXmx2048M")
if ctx.Config().IsEnvTrue("RUN_ERROR_PRONE") {
ctx.Strict("TARGET_JAVAC", "${ErrorProneCmd}")