diff options
author | 2018-06-19 22:47:35 -0700 | |
---|---|---|
committer | 2018-06-20 21:03:16 -0700 | |
commit | 6654810f3762b6c683c421749b18409725abf586 (patch) | |
tree | 0f8dbc901ed67ec4075a95da3eec79332238b6b5 /java/builder.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/builder.go')
-rw-r--r-- | java/builder.go | 39 |
1 files changed, 7 insertions, 32 deletions
diff --git a/java/builder.go b/java/builder.go index 2a2ed23f1..1944e698a 100644 --- a/java/builder.go +++ b/java/builder.go @@ -26,7 +26,6 @@ import ( "github.com/google/blueprint" "android/soong/android" - "android/soong/java/config" ) var ( @@ -80,29 +79,6 @@ var ( }, "kotlincFlags", "classpath", "srcJars", "srcJarDir", "outDir", "kotlinJvmTarget") - errorprone = pctx.AndroidStaticRule("errorprone", - blueprint.RuleParams{ - Command: `rm -rf "$outDir" "$annoDir" "$srcJarDir" && mkdir -p "$outDir" "$annoDir" "$srcJarDir" && ` + - `${config.ZipSyncCmd} -d $srcJarDir -l $srcJarDir/list -f "*.java" $srcJars && ` + - `${config.SoongJavacWrapper} ${config.ErrorProneCmd} ` + - `$processorpath $javacFlags $bootClasspath $classpath ` + - `-source $javaVersion -target $javaVersion ` + - `-d $outDir -s $annoDir @$out.rsp @$srcJarDir/list && ` + - `${config.SoongZipCmd} -jar -o $out -C $outDir -D $outDir`, - CommandDeps: []string{ - "${config.JavaCmd}", - "${config.ErrorProneJavacJar}", - "${config.ErrorProneJar}", - "${config.SoongZipCmd}", - "${config.ZipSyncCmd}", - }, - CommandOrderOnly: []string{"${config.SoongJavacWrapper}"}, - Rspfile: "$out.rsp", - RspfileContent: "$in", - }, - "javacFlags", "bootClasspath", "classpath", "processorpath", "srcJars", "srcJarDir", - "outDir", "annoDir", "javaVersion") - turbine = pctx.AndroidStaticRule("turbine", blueprint.RuleParams{ Command: `rm -rf "$outDir" && mkdir -p "$outDir" && ` + @@ -161,6 +137,7 @@ type javaBuilderFlags struct { javaVersion string errorProneExtraJavacFlags string + errorProneProcessorPath classpath kotlincFlags string kotlincClasspath classpath @@ -208,26 +185,24 @@ func TransformJavaToClasses(ctx android.ModuleContext, outputFile android.Writab desc += strconv.Itoa(shardIdx) } - transformJavaToClasses(ctx, outputFile, shardIdx, srcFiles, srcJars, flags, deps, "javac", desc, javac) + transformJavaToClasses(ctx, outputFile, shardIdx, srcFiles, srcJars, flags, deps, "javac", desc) } func RunErrorProne(ctx android.ModuleContext, outputFile android.WritablePath, srcFiles, srcJars android.Paths, flags javaBuilderFlags) { - if config.ErrorProneJar == "" { - ctx.ModuleErrorf("cannot build with Error Prone, missing external/error_prone?") - } + flags.processorPath = append(flags.errorProneProcessorPath, flags.processorPath...) if len(flags.errorProneExtraJavacFlags) > 0 { if len(flags.javacFlags) > 0 { - flags.javacFlags = flags.errorProneExtraJavacFlags + " " + flags.javacFlags + flags.javacFlags += " " + flags.errorProneExtraJavacFlags } else { flags.javacFlags = flags.errorProneExtraJavacFlags } } transformJavaToClasses(ctx, outputFile, -1, srcFiles, srcJars, flags, nil, - "errorprone", "errorprone", errorprone) + "errorprone", "errorprone") } func TransformJavaToHeaderClasses(ctx android.ModuleContext, outputFile android.WritablePath, @@ -276,7 +251,7 @@ func TransformJavaToHeaderClasses(ctx android.ModuleContext, outputFile android. func transformJavaToClasses(ctx android.ModuleContext, outputFile android.WritablePath, shardIdx int, srcFiles, srcJars android.Paths, flags javaBuilderFlags, deps android.Paths, - intermediatesDir, desc string, rule blueprint.Rule) { + intermediatesDir, desc string) { deps = append(deps, srcJars...) @@ -308,7 +283,7 @@ func transformJavaToClasses(ctx android.ModuleContext, outputFile android.Writab annoDir = filepath.Join(shardDir, annoDir) } ctx.Build(pctx, android.BuildParams{ - Rule: rule, + Rule: javac, Description: desc, Output: outputFile, Inputs: srcFiles, |