diff options
Diffstat (limited to 'java')
| -rw-r--r-- | java/config/config.go | 8 | ||||
| -rw-r--r-- | java/config/makevars.go | 1 | ||||
| -rw-r--r-- | java/system_modules.go | 4 |
3 files changed, 12 insertions, 1 deletions
diff --git a/java/config/config.go b/java/config/config.go index ce62b932a..f418ee7f9 100644 --- a/java/config/config.go +++ b/java/config/config.go @@ -86,6 +86,14 @@ func init() { // This is set up and guaranteed by soong_ui return ctx.Config().Getenv("ANDROID_JAVA_HOME") }) + pctx.VariableFunc("JlinkVersion", func(ctx android.PackageVarContext) string { + switch ctx.Config().Getenv("EXPERIMENTAL_USE_OPENJDK11_TOOLCHAIN") { + case "true": + return "11" + default: + return "9" + } + }) pctx.SourcePathVariable("JavaToolchain", "${JavaHome}/bin") pctx.SourcePathVariableWithEnvOverride("JavacCmd", diff --git a/java/config/makevars.go b/java/config/makevars.go index c40f4fcc5..2fa6f8969 100644 --- a/java/config/makevars.go +++ b/java/config/makevars.go @@ -38,6 +38,7 @@ func makeVarsProvider(ctx android.MakeVarsContext) { ctx.Strict("ANDROID_JAVA_HOME", "${JavaHome}") ctx.Strict("ANDROID_JAVA8_HOME", "prebuilts/jdk/jdk8/${hostPrebuiltTag}") ctx.Strict("ANDROID_JAVA9_HOME", "prebuilts/jdk/jdk9/${hostPrebuiltTag}") + ctx.Strict("ANDROID_JAVA11_HOME", "prebuilts/jdk/jdk11/${hostPrebuiltTag}") ctx.Strict("ANDROID_JAVA_TOOLCHAIN", "${JavaToolchain}") ctx.Strict("JAVA", "${JavaCmd} ${JavaVmFlags}") ctx.Strict("JAVAC", "${JavacCmd} ${JavacVmFlags}") diff --git a/java/system_modules.go b/java/system_modules.go index 8ad718124..b56a401d3 100644 --- a/java/system_modules.go +++ b/java/system_modules.go @@ -40,7 +40,9 @@ var ( `${config.JavacCmd} --system=none --patch-module=java.base=${classpath} ${workDir}/module-info.java && ` + `${config.SoongZipCmd} -jar -o ${workDir}/classes.jar -C ${workDir} -f ${workDir}/module-info.class && ` + `${config.MergeZipsCmd} -j ${workDir}/module.jar ${workDir}/classes.jar $in && ` + - `${config.JmodCmd} create --module-version 9 --target-platform android ` + + // Note: The version of the java.base module created must match the version + // of the jlink tool which consumes it. + `${config.JmodCmd} create --module-version ${config.JlinkVersion} --target-platform android ` + ` --class-path ${workDir}/module.jar ${workDir}/jmod/java.base.jmod && ` + `${config.JlinkCmd} --module-path ${workDir}/jmod --add-modules java.base --output ${outDir} ` + // Note: The system-modules jlink plugin is disabled because (a) it is not |