Index: build/config/android/internal_rules.gni |
diff --git a/build/config/android/internal_rules.gni b/build/config/android/internal_rules.gni |
index 8920e95abccd1509fa67b70ac27c73ea6c83c701..679213f987e041936dabfbb973592d260d4dc05b 100644 |
--- a/build/config/android/internal_rules.gni |
+++ b/build/config/android/internal_rules.gni |
@@ -62,6 +62,44 @@ template("android_lint") { |
} |
} |
+template("findbugs") { |
+ jar_path = invoker.jar_path |
+ |
+ build_config = invoker.build_config |
+ |
+ action(target_name) { |
+ script = "//build/android/findbugs_diff.py" |
+ depfile = "$target_gen_dir/$target_name.d" |
+ result_path = "$target_gen_dir/$target_name/result.xml" |
+ exclusions_file = "//build/android/findbugs_filter/findbugs_exclude.xml" |
+ |
+ rebased_build_config = rebase_path(build_config, root_build_dir) |
+ |
+ inputs = [ |
+ "//build/android/pylib/utils/findbugs.py", |
+ exclusions_file, |
+ jar_path, |
+ ] |
+ |
+ outputs = [ |
+ depfile, |
+ result_path, |
+ ] |
+ |
+ args = [ |
+ "--depfile", |
+ rebase_path(depfile, root_build_dir), |
+ "--exclude", |
+ rebase_path(exclusions_file, root_build_dir), |
+ "--auxclasspath-gyp", |
+ "@FileArg($rebased_build_config:javac:classpath)", |
+ "--output-file", |
+ rebase_path(result_path, root_build_dir), |
+ rebase_path(jar_path, root_build_dir), |
+ ] |
+ } |
+} |
+ |
template("dex") { |
set_sources_assignment_filter([]) |
if (defined(invoker.testonly)) { |
@@ -914,6 +952,14 @@ template("java_library_impl") { |
jar_path = _jar_path |
java_files = _java_files |
} |
+ |
+ if (run_findbugs) { |
+ _final_datadeps += [ ":${_template_name}__findbugs" ] |
+ findbugs("${_template_name}__findbugs") { |
+ build_config = _build_config |
+ jar_path = _jar_path |
+ } |
+ } |
} |
_final_deps += [ ":${_template_name}__dex" ] |