From 0760c898821150912da273bb1030485c5df35b19 Mon Sep 17 00:00:00 2001 From: Sorin Basca Date: Wed, 29 Nov 2023 19:13:55 +0000 Subject: [PATCH] Support experimental building with OpenJDK 21 Use EXPERIMENTAL_USE_OPENJDK21_TOOLCHAIN=true to build with OpenJDK 21 while still targeting java language version 17. Bug: 313924276 Test: m EXPERIMENTAL_USE_OPENJDK21_TOOLCHAIN=true Change-Id: Idc892bb7519e597f1e280ca0765c1a281bb29955 --- java/config/config.go | 7 ++++++- ui/build/config.go | 4 ++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/java/config/config.go b/java/config/config.go index 83c27d309..009813078 100644 --- a/java/config/config.go +++ b/java/config/config.go @@ -133,7 +133,12 @@ func init() { if override := ctx.Config().Getenv("OVERRIDE_JLINK_VERSION_NUMBER"); override != "" { return override } - return "17" + switch ctx.Config().Getenv("EXPERIMENTAL_USE_OPENJDK21_TOOLCHAIN") { + case "true": + return "21" + default: + return "17" + } }) pctx.SourcePathVariable("JavaToolchain", "${JavaHome}/bin") diff --git a/ui/build/config.go b/ui/build/config.go index d345415b5..613fc6537 100644 --- a/ui/build/config.go +++ b/ui/build/config.go @@ -384,10 +384,14 @@ func NewConfig(ctx Context, args ...string) Config { // Configure Java-related variables, including adding it to $PATH java8Home := filepath.Join("prebuilts/jdk/jdk8", ret.HostPrebuiltTag()) java17Home := filepath.Join("prebuilts/jdk/jdk17", ret.HostPrebuiltTag()) + java21Home := filepath.Join("prebuilts/jdk/jdk21", ret.HostPrebuiltTag()) javaHome := func() string { if override, ok := ret.environ.Get("OVERRIDE_ANDROID_JAVA_HOME"); ok { return override } + if ret.environ.IsEnvTrue("EXPERIMENTAL_USE_OPENJDK21_TOOLCHAIN") { + return java21Home + } if toolchain11, ok := ret.environ.Get("EXPERIMENTAL_USE_OPENJDK11_TOOLCHAIN"); ok && toolchain11 != "true" { ctx.Fatalln("The environment variable EXPERIMENTAL_USE_OPENJDK11_TOOLCHAIN is no longer supported. An OpenJDK 11 toolchain is now the global default.") }