Add `android_lint_tools` to `java_toolchain` for `AndroidLint` action `tools`. `_android_lint_action` in `android_lint.bzl` passes `linter.data` (`android_lint_data`, used for `android_lint_opts` location expansion) in per-action `inputs` (`transitive_inputs`) rather than `tools`. Add `android_lint_tools` on `java_toolchain` for `android_lint_jvm_opts` location expansion and include `linter.tools` in `AndroidLint` action `tools`, so persistent workers include JVM startup tool files in `WorkerFilesHash` without rebuilding worker snapshots when per-action `android_lint_data` inputs change. PiperOrigin-RevId: 998493863 Change-Id: I97d05f2e3d10f0948fc0563551f2c098c743d35a
diff --git a/java/common/rules/android_lint.bzl b/java/common/rules/android_lint.bzl index 7152990..d07bb5e 100644 --- a/java/common/rules/android_lint.bzl +++ b/java/common/rules/android_lint.bzl
@@ -82,7 +82,7 @@ executable = linter.tool.executable transitive_inputs = [] if executable.extension != "jar": - tools = [linter.tool] + tools = [linter.tool, linter.tools] transitive_inputs.append(linter.data) args_list = [args] else: @@ -91,7 +91,7 @@ jvm_args.add_all(linter.jvm_opts) jvm_args.add("-jar", executable) executable = java_runtime.java_executable_exec_path - tools = [java_runtime.files, linter.tool.executable] + tools = [java_runtime.files, linter.tool.executable, linter.tools] transitive_inputs.append(linter.data) args_list = [jvm_args, args]
diff --git a/java/common/rules/java_toolchain.bzl b/java/common/rules/java_toolchain.bzl index a24ae4f..1205083 100644 --- a/java/common/rules/java_toolchain.bzl +++ b/java/common/rules/java_toolchain.bzl
@@ -176,8 +176,9 @@ fail(ctx.attr.android_lint_runner.label, "does not refer to a valid executable target") return struct( tool = files_to_run, + tools = depset(ctx.files.android_lint_tools), data = depset(ctx.files.android_lint_data), - jvm_opts = depset([ctx.expand_location(opt, ctx.attr.android_lint_data) for opt in ctx.attr.android_lint_jvm_opts]), + jvm_opts = depset([ctx.expand_location(opt, ctx.attr.android_lint_tools) for opt in ctx.attr.android_lint_jvm_opts]), lint_opts = [ctx.expand_location(opt, ctx.attr.android_lint_data) for opt in ctx.attr.android_lint_opts], package_config = [dep[JavaPackageConfigurationInfo] for dep in ctx.attr.android_lint_package_configuration], ) @@ -297,6 +298,13 @@ cfg = "exec", allow_files = True, doc = """ +Labels of files available for label-expansion in android_lint_opts. + """, + ), + "android_lint_tools": attr.label_list( + cfg = "exec", + allow_files = True, + doc = """ Labels of tools available for label-expansion in android_lint_jvm_opts. """, ),