diff --git a/java/config/config.go b/java/config/config.go index 422f86002..b026d73cf 100644 --- a/java/config/config.go +++ b/java/config/config.go @@ -124,6 +124,10 @@ func init() { // This is set up and guaranteed by soong_ui return ctx.Config().Getenv("ANDROID_JAVA_HOME") }) + pctx.VariableFunc("Java11Home", func(ctx android.PackageVarContext) string { + // This is set up and guaranteed by soong_ui + return ctx.Config().Getenv("ANDROID_JAVA11_HOME") + }) pctx.VariableFunc("JlinkVersion", func(ctx android.PackageVarContext) string { if override := ctx.Config().Getenv("OVERRIDE_JLINK_VERSION_NUMBER"); override != "" { return override @@ -137,11 +141,12 @@ func init() { }) pctx.SourcePathVariable("JavaToolchain", "${JavaHome}/bin") + pctx.SourcePathVariable("Java11Toolchain", "${Java11Home}/bin") pctx.SourcePathVariableWithEnvOverride("JavacCmd", "${JavaToolchain}/javac", "ALTERNATE_JAVAC") pctx.SourcePathVariable("JavaCmd", "${JavaToolchain}/java") pctx.SourcePathVariable("JarCmd", "${JavaToolchain}/jar") - pctx.SourcePathVariable("JavadocCmd", "${JavaToolchain}/javadoc") + pctx.SourcePathVariable("JavadocCmd", "${Java11Toolchain}/javadoc") pctx.SourcePathVariable("JlinkCmd", "${JavaToolchain}/jlink") pctx.SourcePathVariable("JmodCmd", "${JavaToolchain}/jmod") pctx.SourcePathVariable("JrtFsJar", "${JavaHome}/lib/jrt-fs.jar") @@ -267,7 +272,7 @@ func JavaCmd(ctx android.PathContext) android.SourcePath { // JavadocCmd returns a SourcePath object with the path to the java command. func JavadocCmd(ctx android.PathContext) android.SourcePath { - return javaTool(ctx, "javadoc") + return java11Tool(ctx, "javadoc") } func javaTool(ctx android.PathContext, tool string) android.SourcePath { @@ -281,6 +286,17 @@ func javaTool(ctx android.PathContext, tool string) android.SourcePath { } +func java11Tool(ctx android.PathContext, tool string) android.SourcePath { + type javaToolKey string + + key := android.NewCustomOnceKey(javaToolKey(tool)) + + return ctx.Config().OnceSourcePath(key, func() android.SourcePath { + return java11Toolchain(ctx).Join(ctx, tool) + }) + +} + var javaToolchainKey = android.NewOnceKey("javaToolchain") func javaToolchain(ctx android.PathContext) android.SourcePath { @@ -289,6 +305,14 @@ func javaToolchain(ctx android.PathContext) android.SourcePath { }) } +var java11ToolchainKey = android.NewOnceKey("java11Toolchain") + +func java11Toolchain(ctx android.PathContext) android.SourcePath { + return ctx.Config().OnceSourcePath(java11ToolchainKey, func() android.SourcePath { + return java11Home(ctx).Join(ctx, "bin") + }) +} + var javaHomeKey = android.NewOnceKey("javaHome") func javaHome(ctx android.PathContext) android.SourcePath { @@ -297,3 +321,12 @@ func javaHome(ctx android.PathContext) android.SourcePath { return android.PathForSource(ctx, ctx.Config().Getenv("ANDROID_JAVA_HOME")) }) } + +var java11HomeKey = android.NewOnceKey("java11Home") + +func java11Home(ctx android.PathContext) android.SourcePath { + return ctx.Config().OnceSourcePath(java11HomeKey, func() android.SourcePath { + // This is set up and guaranteed by soong_ui + return android.PathForSource(ctx, ctx.Config().Getenv("ANDROID_JAVA11_HOME")) + }) +} diff --git a/java/droiddoc.go b/java/droiddoc.go index 9b1f43b4c..fc95184f1 100644 --- a/java/droiddoc.go +++ b/java/droiddoc.go @@ -755,6 +755,7 @@ func dokkaCmd(ctx android.ModuleContext, rule *android.RuleBuilder, return rule.Command(). BuiltTool("dokka"). Flag(config.JavacVmFlags). + Flag("-J--add-opens=java.base/java.lang=ALL-UNNAMED"). Flag(srcJarDir.String()). FlagWithInputList("-classpath ", dokkaClasspath, ":"). FlagWithArg("-format ", "dac").