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
This commit is contained in:
@@ -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,
|
||||
|
Reference in New Issue
Block a user