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) {
action_with_pydeps(target_name) {
forward_variables_from(invoker,
[
"deps",
"data_deps",
"public_deps",
"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"
if (defined(invoker.lint_suppressions_file)) {
_suppressions_file = invoker.lint_suppressions_file
......@@ -971,7 +1000,10 @@ if (enable_java_templates) {
# to create the cache dir for us.
_stamp_path = "$_cache_dir/build.lint.stamp"
} else {
deps += [ "//build/android:prepare_android_lint_cache" ]
deps += [
"//build/android:prepare_android_lint_cache",
invoker.build_config_dep,
]
inputs += [ invoker.build_config ]
_rebased_build_config =
rebase_path(invoker.build_config, root_build_dir)
......
......@@ -3367,10 +3367,8 @@ if (enable_java_templates) {
"min_sdk_version",
])
build_config = _build_config
deps = [
":$_build_config_target",
":$_java_target",
]
build_config_dep = ":$_build_config_target"
deps = [ ":$_java_target" ]
}
} else {
not_needed(invoker, [ "manifest_package" ])
......@@ -4971,7 +4969,8 @@ if (enable_java_templates) {
"lint_suppressions_file",
])
build_config = _build_config
deps = _module_java_targets + [ ":$_build_config_target" ]
build_config_dep = ":$_build_config_target"
deps = _module_java_targets
}
} else {
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