java compilation: refactor and extract javac flag computation into a
separate function. This cleans up the internal wiring for a follow-up --patch-module functionality change. Bug: 150878007 Test: m Change-Id: Ie7d9c2b1ad40e055da8a53d632510bef408fc7d2
This commit is contained in:
56
java/java.go
56
java/java.go
@@ -1187,18 +1187,6 @@ func (j *Module) collectBuilderFlags(ctx android.ModuleContext, deps deps) javaB
|
||||
// javaVersion flag.
|
||||
flags.javaVersion = getJavaVersion(ctx, String(j.properties.Java_version), sdkContext(j))
|
||||
|
||||
// javac flags.
|
||||
javacFlags := j.properties.Javacflags
|
||||
if flags.javaVersion.usesJavaModules() {
|
||||
javacFlags = append(javacFlags, j.properties.Openjdk9.Javacflags...)
|
||||
}
|
||||
if ctx.Config().MinimizeJavaDebugInfo() && !ctx.Host() {
|
||||
// For non-host binaries, override the -g flag passed globally to remove
|
||||
// local variable debug info to reduce disk and memory usage.
|
||||
javacFlags = append(javacFlags, "-g:source,lines")
|
||||
}
|
||||
javacFlags = append(javacFlags, "-Xlint:-dep-ann")
|
||||
|
||||
if ctx.Config().RunErrorProne() {
|
||||
if config.ErrorProneClasspath == nil {
|
||||
ctx.ModuleErrorf("cannot build with Error Prone, missing external/error_prone?")
|
||||
@@ -1249,24 +1237,42 @@ func (j *Module) collectBuilderFlags(ctx android.ModuleContext, deps deps) javaB
|
||||
}
|
||||
}
|
||||
|
||||
if j.properties.Patch_module != nil && flags.javaVersion.usesJavaModules() {
|
||||
// Manually specify build directory in case it is not under the repo root.
|
||||
// (javac doesn't seem to expand into symbolc links when searching for patch-module targets, so
|
||||
// just adding a symlink under the root doesn't help.)
|
||||
patchPaths := ".:" + ctx.Config().BuildDir()
|
||||
classPath := flags.classpath.FormJavaClassPath("")
|
||||
if classPath != "" {
|
||||
patchPaths += ":" + classPath
|
||||
}
|
||||
javacFlags = append(javacFlags, "--patch-module="+String(j.properties.Patch_module)+"="+patchPaths)
|
||||
}
|
||||
|
||||
// systemModules
|
||||
flags.systemModules = deps.systemModules
|
||||
|
||||
// aidl flags.
|
||||
flags.aidlFlags, flags.aidlDeps = j.aidlFlags(ctx, deps.aidlPreprocess, deps.aidlIncludeDirs)
|
||||
|
||||
return flags
|
||||
}
|
||||
|
||||
func (j *Module) collectJavacFlags(ctx android.ModuleContext, flags javaBuilderFlags) javaBuilderFlags {
|
||||
// javac flags.
|
||||
javacFlags := j.properties.Javacflags
|
||||
|
||||
if ctx.Config().MinimizeJavaDebugInfo() && !ctx.Host() {
|
||||
// For non-host binaries, override the -g flag passed globally to remove
|
||||
// local variable debug info to reduce disk and memory usage.
|
||||
javacFlags = append(javacFlags, "-g:source,lines")
|
||||
}
|
||||
javacFlags = append(javacFlags, "-Xlint:-dep-ann")
|
||||
|
||||
if flags.javaVersion.usesJavaModules() {
|
||||
javacFlags = append(javacFlags, j.properties.Openjdk9.Javacflags...)
|
||||
|
||||
if j.properties.Patch_module != nil {
|
||||
// Manually specify build directory in case it is not under the repo root.
|
||||
// (javac doesn't seem to expand into symbolc links when searching for patch-module targets, so
|
||||
// just adding a symlink under the root doesn't help.)
|
||||
patchPaths := ".:" + ctx.Config().BuildDir()
|
||||
classPath := flags.classpath.FormJavaClassPath("")
|
||||
if classPath != "" {
|
||||
patchPaths += ":" + classPath
|
||||
}
|
||||
javacFlags = append(javacFlags, "--patch-module="+String(j.properties.Patch_module)+"="+patchPaths)
|
||||
}
|
||||
}
|
||||
|
||||
if len(javacFlags) > 0 {
|
||||
// optimization.
|
||||
ctx.Variable(pctx, "javacFlags", strings.Join(javacFlags, " "))
|
||||
@@ -1297,6 +1303,8 @@ func (j *Module) compile(ctx android.ModuleContext, aaptSrcJar android.Path) {
|
||||
|
||||
srcFiles = j.genSources(ctx, srcFiles, flags)
|
||||
|
||||
flags = j.collectJavacFlags(ctx, flags)
|
||||
|
||||
srcJars := srcFiles.FilterByExt(".srcjar")
|
||||
srcJars = append(srcJars, deps.srcJars...)
|
||||
if aaptSrcJar != nil {
|
||||
|
Reference in New Issue
Block a user