Soong: support Errorprone javacflags
Add support for an errorprone block in Java modules that accepts
additional javacflags for the errorprone build.
Sample:
errorprone: {
javacflags: ["-Xep:EqualsNaN:WARN"],
},
Bug: 72004718
Test: m RUN_ERROR_PRONE=true
Test: manual - add block with ERROR to a project
Test: androidmk_test
Change-Id: I502248fe76c26aa19102f413af72a7324c35b7f4
diff --git a/java/builder.go b/java/builder.go
index bf826e1..7273290 100644
--- a/java/builder.go
+++ b/java/builder.go
@@ -155,6 +155,8 @@
aidlFlags string
javaVersion string
+ errorProneExtraJavacFlags string
+
kotlincFlags string
kotlincClasspath classpath
@@ -210,6 +212,14 @@
ctx.ModuleErrorf("cannot build with Error Prone, missing external/error_prone?")
}
+ if len(flags.errorProneExtraJavacFlags) > 0 {
+ if len(flags.javacFlags) > 0 {
+ flags.javacFlags = flags.errorProneExtraJavacFlags + " " + flags.javacFlags
+ } else {
+ flags.javacFlags = flags.errorProneExtraJavacFlags
+ }
+ }
+
transformJavaToClasses(ctx, outputFile, -1, srcFiles, srcJars, flags, nil,
"errorprone", "errorprone", errorprone)
}
diff --git a/java/java.go b/java/java.go
index 65e3b41..a6769e7 100644
--- a/java/java.go
+++ b/java/java.go
@@ -142,6 +142,11 @@
Exclude_filter []string
}
+ Errorprone struct {
+ // List of javac flags that should only be used when running errorprone.
+ Javacflags []string
+ }
+
Proto struct {
// List of extra options that will be passed to the proto generator.
Output_params []string
@@ -646,6 +651,10 @@
flags.javacFlags = "$javacFlags"
}
+ if len(j.properties.Errorprone.Javacflags) > 0 {
+ flags.errorProneExtraJavacFlags = strings.Join(j.properties.Errorprone.Javacflags, " ")
+ }
+
// javaVersion flag.
sdk := sdkStringToNumber(ctx, String(j.deviceProperties.Sdk_version))
if j.properties.Java_version != nil {