Commit 1bd458ce authored by Peter Wen's avatar Peter Wen Committed by Commit Bot

Android: Filter deps for lint targets

Reduce lint to using __header and __assetres targets instead of the full
java targets.

For chrome java signatureless, this means going from 110s -> 83s, a 27s
improvement. The only target that __lint targets wait for is the turbine
header generation (~5 seconds for chrome_java), so not much more
headroom for improvements without actually speeding up lint.

Bug: 1082743
Change-Id: I205151fcf1949252017c66b49986bcc91284f2d0
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2229206
Commit-Queue: Andrew Grieve <agrieve@chromium.org>
Reviewed-by: default avatarAndrew Grieve <agrieve@chromium.org>
Auto-Submit: Peter Wen <wnwen@chromium.org>
Cr-Commit-Position: refs/heads/master@{#775234}
parent f99dd3c1
...@@ -901,11 +901,40 @@ if (enable_java_templates) { ...@@ -901,11 +901,40 @@ if (enable_java_templates) {
action_with_pydeps(target_name) { action_with_pydeps(target_name) {
forward_variables_from(invoker, forward_variables_from(invoker,
[ [
"deps",
"data_deps", "data_deps",
"public_deps", "public_deps",
"testonly", "testonly",
]) ])
if (!defined(deps)) {
deps = []
}
# Lint only requires generated sources and generated resources from the
# build. Since turbine __header targets already depend on and generate all
# the generated sources, and the __assetres targets include all generated
# resources, lint only needs to depend on the header and assetres targets
# rather than the top level java targets.
if (defined(invoker.deps)) {
foreach(_dep, invoker.deps) {
_target_label = get_label_info(_dep, "label_no_toolchain")
if (filter_exclude([ _target_label ], _java_library_patterns) == [] &&
filter_exclude([ _target_label ], _java_resource_patterns) !=
[]) {
deps += [
# Strictly speaking the __header target is sufficient, since they
# already depend on resources (due to srcjar deps), but prefer to
# be more explicit here since if/when __header targets stop
# depending on resources (e.g. if R.java generation moves to java
# targets), lint will not be affected.
"${_target_label}__assetres",
"${_target_label}__header",
]
} else {
deps += [ _dep ]
}
}
}
_suppressions_file = "//build/android/lint/suppressions.xml" _suppressions_file = "//build/android/lint/suppressions.xml"
if (defined(invoker.lint_suppressions_file)) { if (defined(invoker.lint_suppressions_file)) {
_suppressions_file = invoker.lint_suppressions_file _suppressions_file = invoker.lint_suppressions_file
...@@ -971,7 +1000,10 @@ if (enable_java_templates) { ...@@ -971,7 +1000,10 @@ if (enable_java_templates) {
# to create the cache dir for us. # to create the cache dir for us.
_stamp_path = "$_cache_dir/build.lint.stamp" _stamp_path = "$_cache_dir/build.lint.stamp"
} else { } else {
deps += [ "//build/android:prepare_android_lint_cache" ] deps += [
"//build/android:prepare_android_lint_cache",
invoker.build_config_dep,
]
inputs += [ invoker.build_config ] inputs += [ invoker.build_config ]
_rebased_build_config = _rebased_build_config =
rebase_path(invoker.build_config, root_build_dir) rebase_path(invoker.build_config, root_build_dir)
......
...@@ -3367,10 +3367,8 @@ if (enable_java_templates) { ...@@ -3367,10 +3367,8 @@ if (enable_java_templates) {
"min_sdk_version", "min_sdk_version",
]) ])
build_config = _build_config build_config = _build_config
deps = [ build_config_dep = ":$_build_config_target"
":$_build_config_target", deps = [ ":$_java_target" ]
":$_java_target",
]
} }
} else { } else {
not_needed(invoker, [ "manifest_package" ]) not_needed(invoker, [ "manifest_package" ])
...@@ -4971,7 +4969,8 @@ if (enable_java_templates) { ...@@ -4971,7 +4969,8 @@ if (enable_java_templates) {
"lint_suppressions_file", "lint_suppressions_file",
]) ])
build_config = _build_config build_config = _build_config
deps = _module_java_targets + [ ":$_build_config_target" ] build_config_dep = ":$_build_config_target"
deps = _module_java_targets
} }
} else { } else {
not_needed(invoker, [ "manifest_package" ]) not_needed(invoker, [ "manifest_package" ])
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment