Allow experimental Java target 21 by default

Bug: 342332820
Test: EXPERIMENTAL_TARGET_JAVA_VERSION_21=true m
Change-Id: I6cc21bf191385df91c2446b7cd6291a0e3532bea
This commit is contained in:
Sorin Basca 2024-05-23 10:28:24 +01:00
parent 635e1218bd
commit 253f8c045a
3 changed files with 16 additions and 0 deletions

View file

@ -827,6 +827,10 @@ func (c *config) IsEnvFalse(key string) bool {
return value == "0" || value == "n" || value == "no" || value == "off" || value == "false"
}
func (c *config) TargetsJava21() bool {
return c.IsEnvTrue("EXPERIMENTAL_TARGET_JAVA_VERSION_21")
}
// EnvDeps returns the environment variables this build depends on. The first
// call to this function blocks future reads from the environment.
func (c *config) EnvDeps() map[string]string {

View file

@ -577,6 +577,12 @@ func getJavaVersion(ctx android.ModuleContext, javaVersion string, sdkContext an
return normalizeJavaVersion(ctx, javaVersion)
} else if ctx.Device() {
return defaultJavaLanguageVersion(ctx, sdkContext.SdkVersion(ctx))
} else if ctx.Config().TargetsJava21() {
// Temporary experimental flag to be able to try and build with
// java version 21 options. The flag, if used, just sets Java
// 21 as the default version, leaving any components that
// target an older version intact.
return JAVA_VERSION_21
} else {
return JAVA_VERSION_17
}

View file

@ -65,6 +65,12 @@ func defaultJavaLanguageVersion(ctx android.EarlyModuleContext, s android.SdkSpe
return JAVA_VERSION_9
} else if sdk.FinalOrFutureInt() <= 33 {
return JAVA_VERSION_11
} else if ctx.Config().TargetsJava21() {
// Temporary experimental flag to be able to try and build with
// java version 21 options. The flag, if used, just sets Java
// 21 as the default version, leaving any components that
// target an older version intact.
return JAVA_VERSION_21
} else {
return JAVA_VERSION_17
}