Skip to content

Commit aef7514

Browse files
cushonrules_java Copybara
authored andcommitted
Add java_library outputs to validation outputs
This ensures that compilation actions are performed for libraries that are only used as neverlink dependencies, to ensure that any compilation errors are reported. The minimize the number of additional validation actions, the validation is done for targets that set neverlink, and their transitive runtime dependencies, so anything that is used as a transitive neverlink dep is covered. PiperOrigin-RevId: 735509081 Change-Id: I76b30e68c8b37eca165861e893ec595cb3040d6c
1 parent d649cd8 commit aef7514

File tree

2 files changed

+13
-2
lines changed

2 files changed

+13
-2
lines changed

java/common/rules/impl/basic_java_library_impl.bzl

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -156,6 +156,8 @@ def basic_java_library(
156156
_direct_source_jars = java_info.source_jars,
157157
)
158158

159+
validation_outputs = []
160+
159161
if ctx.fragments.java.run_android_lint:
160162
generated_source_jars = [
161163
output.generated_source_jar
@@ -168,7 +170,13 @@ def basic_java_library(
168170
compilation_info,
169171
)
170172
if lint_output:
171-
output_groups["_validation"] = [lint_output]
173+
validation_outputs.append(depset([lint_output]))
174+
175+
if neverlink:
176+
validation_outputs.append(java_info.compilation_info.runtime_classpath)
177+
178+
if validation_outputs:
179+
output_groups["_validation"] = depset(transitive = validation_outputs)
172180

173181
target["InstrumentedFilesInfo"] = coverage_common.instrumented_files_info(
174182
ctx,

java/common/rules/impl/java_binary_impl.bzl

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -251,7 +251,10 @@ def basic_java_binary(
251251
])
252252

253253
if validation_outputs:
254-
output_groups["_validation"] = output_groups.get("_validation", []) + validation_outputs
254+
output_groups["_validation"] = depset(
255+
validation_outputs,
256+
transitive = [output_groups.get("_validation", depset([]))],
257+
)
255258

256259
_filter_validation_output_group(ctx, output_groups)
257260

0 commit comments

Comments
 (0)