Merge "Revert "Setting Java 11 as the default version"" am: e7421c15dd am: a0abe6e74e am: cee0e6bf57

Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1956197

Change-Id: I8a7c49f1a5cd48b868813cd54dafa42c1ab8c8fd
This commit is contained in:
Sorin Basca 2022-01-20 16:39:24 +00:00 committed by Automerger Merge Worker
commit 902ad4c260
5 changed files with 35 additions and 4 deletions

View file

@ -658,6 +658,10 @@ func (c *config) IsEnvFalse(key string) bool {
return value == "0" || value == "n" || value == "no" || value == "off" || value == "false"
}
func (c *config) TargetsJava11() bool {
return c.IsEnvTrue("EXPERIMENTAL_TARGET_JAVA_VERSION_11")
}
// 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

@ -122,6 +122,14 @@ type CommonProperties struct {
Javacflags []string
}
Openjdk11 struct {
// List of source files that should only be used when passing -source 1.9 or higher
Srcs []string `android:"path"`
// List of javac flags that should only be used when passing -source 1.9 or higher
Javacflags []string
}
// When compiling language level 9+ .java code in packages that are part of
// a system module, patch_module names the module that your sources and
// dependencies should be patched into. The Android runtime currently
@ -968,6 +976,9 @@ func (j *Module) compile(ctx android.ModuleContext, aaptSrcJar android.Path) {
if flags.javaVersion.usesJavaModules() {
j.properties.Srcs = append(j.properties.Srcs, j.properties.Openjdk9.Srcs...)
}
if ctx.Config().TargetsJava11() {
j.properties.Srcs = append(j.properties.Srcs, j.properties.Openjdk11.Srcs...)
}
srcFiles := android.PathsForModuleSrcExcludes(ctx, j.properties.Srcs, j.properties.Exclude_srcs)
if hasSrcExt(srcFiles.Strings(), ".proto") {

View file

@ -450,8 +450,14 @@ func getJavaVersion(ctx android.ModuleContext, javaVersion string, sdkContext an
return normalizeJavaVersion(ctx, javaVersion)
} else if ctx.Device() {
return defaultJavaLanguageVersion(ctx, sdkContext.SdkVersion(ctx))
} else {
} else if ctx.Config().TargetsJava11() {
// Temporary experimental flag to be able to try and build with
// java version 11 options. The flag, if used, just sets Java
// 11 as the default version, leaving any components that
// target an older version intact.
return JAVA_VERSION_11
} else {
return JAVA_VERSION_9
}
}

View file

@ -55,10 +55,14 @@ func defaultJavaLanguageVersion(ctx android.EarlyModuleContext, s android.SdkSpe
return JAVA_VERSION_7
} else if sdk.FinalOrFutureInt() <= 29 {
return JAVA_VERSION_8
} else if sdk.FinalOrFutureInt() <= 31 {
return JAVA_VERSION_9
} else {
} else if ctx.Config().TargetsJava11() {
// Temporary experimental flag to be able to try and build with
// java version 11 options. The flag, if used, just sets Java
// 11 as the default version, leaving any components that
// target an older version intact.
return JAVA_VERSION_11
} else {
return JAVA_VERSION_9
}
}

View file

@ -1392,6 +1392,10 @@ func (module *SdkLibrary) createStubsLibrary(mctx android.DefaultableHookContext
Srcs []string
Javacflags []string
}
Openjdk11 struct {
Srcs []string
Javacflags []string
}
Dist struct {
Targets []string
Dest *string
@ -1418,6 +1422,8 @@ func (module *SdkLibrary) createStubsLibrary(mctx android.DefaultableHookContext
}
props.Openjdk9.Srcs = module.properties.Openjdk9.Srcs
props.Openjdk9.Javacflags = module.properties.Openjdk9.Javacflags
props.Openjdk11.Srcs = module.properties.Openjdk11.Srcs
props.Openjdk11.Javacflags = module.properties.Openjdk11.Javacflags
// We compile the stubs for 1.8 in line with the main android.jar stubs, and potential
// interop with older developer tools that don't support 1.9.
props.Java_version = proptools.StringPtr("1.8")