Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1337)

Unified Diff: build/android/gyp/javac.py

Issue 1136573002: Use the Errorprone Compiler (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Changed default to disabled Created 5 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: build/android/gyp/javac.py
diff --git a/build/android/gyp/javac.py b/build/android/gyp/javac.py
index a0fcda815635e0d19948ab394f459ff49c9a08bf..866bcfe03b9fe4382c6a79dc1c4bf078b7d3e94f 100755
--- a/build/android/gyp/javac.py
+++ b/build/android/gyp/javac.py
@@ -55,7 +55,8 @@ def ColorJavacOutput(output):
def DoJavac(
- classpath, classes_dir, chromium_code, java_files):
+ classpath, classes_dir, chromium_code,
+ use_errorprone, errorprone_path, java_files):
"""Runs javac.
Builds |java_files| with the provided |classpath| and puts the generated
@@ -88,7 +89,28 @@ def DoJavac(
# trigger a compile warning or error.
javac_args.extend(['-XDignore.symbol.file'])
- javac_cmd = ['javac'] + javac_args + java_files
+ def GetErrorproneCommand():
jbudorick 2015/05/15 18:37:12 This should not be done with a local function.
raywilliams_chromium 2015/05/18 19:53:23 Done.
+ disabled_checks = [
+ # Something in chrome_private_java makes this check crash.
+ 'ClassCanBeStatic',
+ # These crash on lots of targets.
+ 'WrongParameterPackage',
+ 'GuiceOverridesGuiceInjectableMethod',
+ 'GuiceOverridesJavaxInjectableMethod',
+ 'ElementsCountedInLoop',
+ ]
+ errorprone_options = [
jbudorick 2015/05/15 18:37:12 errorprone_options can just be a constant, right?
raywilliams_chromium 2015/05/18 19:53:24 Hmm... I don't think python has constants. I can k
jbudorick 2015/05/18 19:58:32 Python doesn't have constants in that the interpre
raywilliams_chromium 2015/05/18 20:50:23 cool - extracted constant and re-tested to make su
raywilliams_chromium 2015/05/18 20:50:23 Done.
+ '-Xepdisable:' + ','.join(
+ ['com.google.errorprone.bugpatterns.' + s for s in disabled_checks])
+ ]
+ return [errorprone_path] + errorprone_options
+
+ if use_errorprone:
+ javac_cmd = GetErrorproneCommand()
+ else:
+ javac_cmd = ['javac']
+
+ javac_cmd = javac_cmd + javac_args + java_files
def Compile():
build_utils.CheckOutput(
@@ -184,6 +206,14 @@ def main(argv):
'warnings for chromium code.')
parser.add_option(
jbudorick 2015/05/15 18:37:12 Do we need both of these options? Passing --enable
raywilliams_chromium 2015/05/18 19:53:23 Done.
raywilliams_chromium 2015/05/18 19:53:23 Good idea :)
+ '--enable-errorprone',
+ action='store_true',
+ help='Use this to enable use of the errorprone compiler.')
+ parser.add_option(
+ '--errorprone-path',
+ help='Path to the errorprone compiler executable.')
+
+ parser.add_option(
'--classes-dir',
help='Directory for compiled .class files.')
parser.add_option('--jar-path', help='Jar output path.')
@@ -240,6 +270,8 @@ def main(argv):
classpath,
classes_dir,
options.chromium_code,
+ options.chromium_code and options.enable_errorprone,
+ options.errorprone_path,
java_files)
if options.jar_path:

Powered by Google App Engine
This is Rietveld 408576698