diff options
author | Colin Cross <ccross@android.com> | 2018-06-19 22:47:35 -0700 |
---|---|---|
committer | Colin Cross <ccross@android.com> | 2018-06-20 21:03:16 -0700 |
commit | 6654810f3762b6c683c421749b18409725abf586 (patch) | |
tree | 0f8dbc901ed67ec4075a95da3eec79332238b6b5 /java/java.go | |
parent | 6a77c9871c5e16cbbbf0ece76d3ae0b400b74a39 (diff) |
Run ErrorProne in OpenJDK9
Use the OpenJDK9 javac to run ErrorProne by adding it to
-processorpath and using -Xplugin:ErrorProne.
Bug: 69485063
Test: m RUN_ERROR_PRONE=true javac-check
Change-Id: I0496006b71b70766ef16d57753cbcf037897799c
Diffstat (limited to 'java/java.go')
-rw-r--r-- | java/java.go | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/java/java.go b/java/java.go index 86c3c21cc..5458ea196 100644 --- a/java/java.go +++ b/java/java.go @@ -843,8 +843,20 @@ func (j *Module) collectBuilderFlags(ctx android.ModuleContext, deps deps) javaB flags.javacFlags = "$javacFlags" } - if len(j.properties.Errorprone.Javacflags) > 0 { - flags.errorProneExtraJavacFlags = strings.Join(j.properties.Errorprone.Javacflags, " ") + if ctx.Config().RunErrorProne() { + if config.ErrorProneClasspath == nil { + ctx.ModuleErrorf("cannot build with Error Prone, missing external/error_prone?") + } + + errorProneFlags := []string{ + "-Xplugin:ErrorProne", + "${config.ErrorProneChecks}", + } + errorProneFlags = append(errorProneFlags, j.properties.Errorprone.Javacflags...) + + flags.errorProneExtraJavacFlags = "${config.ErrorProneFlags} " + + "'" + strings.Join(errorProneFlags, " ") + "'" + flags.errorProneProcessorPath = classpath(android.PathsForSource(ctx, config.ErrorProneClasspath)) } // javaVersion flag. @@ -994,7 +1006,7 @@ func (j *Module) compile(ctx android.ModuleContext, extraSrcJars ...android.Path } if len(uniqueSrcFiles) > 0 || len(srcJars) > 0 { var extraJarDeps android.Paths - if ctx.Config().IsEnvTrue("RUN_ERROR_PRONE") { + if ctx.Config().RunErrorProne() { // If error-prone is enabled, add an additional rule to compile the java files into // a separate set of classes (so that they don't overwrite the normal ones and require // a rebuild when error-prone is turned off). |