We try to have a silent build -- things are either important enough that they should be an error, or are noise and shouldn't be printed. Non-fatal warnings are fairly useless.
We build with -Werror for C++ compilations for that reason. Apparently javac does accept -Werror (javacs newer than ours accept _and document_ -werror with a lower-case W, but ours does accept -Werror with upper-case W).
Output will look like so:
[775/2276] ACTION //components/location/android:location_java__compile_java__javac(//build/toolchain/android:android_clang_arm)
FAILED: gen/components/location/android/location_java__compile_java.javac.jar gen/components/location/android/location_java__compile_java.javac.jar.md5.stamp
python ../../build/android/gyp/javac.py --depfile=gen/components/location/android/location_java__compile_java__javac.d --jar-path=gen/components/location/android/location_java__compile_java.javac.jar --java-srcjars=\[\] --java-srcjars=@FileArg\(gen/components/location/android/location_java.build_config:javac:srcjars\) --classpath=@FileArg\(gen/components/location/android/location_java.build_config:javac:interface_classpath\) --bootclasspath=lib.java/android.interface.jar --java-version=1.7 --chromium-code=1 @gen/components/location/android/location_java.sources
Traceback (most recent call last):
File "../../build/android/gyp/javac.py", line 504, in <module>
sys.exit(main(sys.argv[1:]))
File "../../build/android/gyp/javac.py", line 500, in main
pass_changes=True)
File "/usr/local/google/home/thakis/src/chrome/src/build/android/gyp/util/build_utils.py", line 578, in CallAndWriteDepfileIfStale
pass_changes=True)
File "/usr/local/google/home/thakis/src/chrome/src/build/android/gyp/util/md5_check.py", line 87, in CallAndRecordIfStale
function(*args)
File "/usr/local/google/home/thakis/src/chrome/src/build/android/gyp/util/build_utils.py", line 561, in on_stale_md5
function(*args)
File "../../build/android/gyp/javac.py", line 494, in <lambda>
classpath_inputs),
File "../../build/android/gyp/javac.py", line 260, in _OnStaleMd5
attempt_build()
File "../../build/android/gyp/javac.py", line 258, in <lambda>
stderr_filter=ColorJavacOutput)
File "/usr/local/google/home/thakis/src/chrome/src/build/android/gyp/util/build_utils.py", line 170, in CheckOutput
raise CalledProcessError(cwd, args, stdout + stderr)
util.build_utils.CalledProcessError: Command failed: ( cd /usr/local/google/home/thakis/src/chrome/src/out/gn; javac -g -encoding UTF-8 -classpath lib.java/base/base_java.interface.jar -sourcepath : -bootclasspath lib.java/android.interface.jar -source 1.7 -target 1.7 -Xlint:unchecked -Xlint:deprecation -Werror -d /tmp/tmpLFFJPc/classes ../../components/location/android/java/src/org/chromium/components/location/LocationUtils.java )
../../components/location/android/java/src/org/chromium/components/location/LocationUtils.java:81: warning: [deprecation] LOCATION_PROVIDERS_ALLOWED in Secure has been deprecated
context.getContentResolver(), Settings.Secure.LOCATION_PROVIDERS_ALLOWED));
^
error: warnings found and -Werror specified
1 error
1 warning
thakis@thakis:~/src/chrome/src$ git diff
diff --git a/build/android/gyp/javac.py b/build/android/gyp/javac.py
index 1f8064fb9f09..5d6bd3f77992 100755
--- a/build/android/gyp/javac.py
+++ b/build/android/gyp/javac.py
@@ -448,7 +448,7 @@ def main(argv):
])
if options.chromium_code:
- javac_cmd.extend(['-Xlint:unchecked', '-Xlint:deprecation', '-werror'])
+ javac_cmd.extend(['-Xlint:unchecked', '-Xlint:deprecation', '-Werror'])
else:
# XDignore.symbol.file makes javac compile against rt.jar instead of
# ct.sym. This means that using a java internal package/class will not
Comment 1 by thakis@chromium.org
, Feb 8 2017err make that thakis@thakis:~/src/chrome/src$ git diff master diff --git a/build/android/gyp/javac.py b/build/android/gyp/javac.py index df5325f7f058..5d6bd3f77992 100755 --- a/build/android/gyp/javac.py +++ b/build/android/gyp/javac.py @@ -448,7 +448,7 @@ def main(argv): ]) if options.chromium_code: - javac_cmd.extend(['-Xlint:unchecked', '-Xlint:deprecation']) + javac_cmd.extend(['-Xlint:unchecked', '-Xlint:deprecation', '-Werror']) else: # XDignore.symbol.file makes javac compile against rt.jar instead of # ct.sym. This means that using a java internal package/class will not :-)