diff options
Diffstat (limited to 'java/java.go')
-rw-r--r-- | java/java.go | 56 |
1 files changed, 32 insertions, 24 deletions
diff --git a/java/java.go b/java/java.go index 4b48a15a0..3167512ec 100644 --- a/java/java.go +++ b/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 { |