propagated for cc_library and cc_binary
Part of #8830
RELNOTES[NEW]: tags: use `--experimental_allow_tags_propagation` flag to propagate tags to the action's execution requirements from cc_library or cc_binary targets. Such tags should start with: `no-`, `requires-`, `supports-`, `block-`, `disable-`, `cpu:`. See #8830 for details.
Closes #9267.
PiperOrigin-RevId: 266353642
diff --git a/src/main/java/com/google/devtools/build/lib/packages/TargetUtils.java b/src/main/java/com/google/devtools/build/lib/packages/TargetUtils.java
index b60aaca..82f220a 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/TargetUtils.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/TargetUtils.java
@@ -235,6 +235,24 @@
}
/**
+ * Returns the execution info from the tags declared on the target. These include only some tags
+ * {@link #legalExecInfoKeys} as keys with empty values.
+ *
+ * @param rule a rule instance to get tags from
+ * @param allowTagsPropagation if set to true, tags will be propagated from a target to the
+ * actions' execution requirements, for more details {@see
+ * SkylarkSematicOptions#experimentalAllowTagsPropagation}
+ */
+ public static ImmutableMap<String, String> getExecutionInfo(
+ Rule rule, boolean allowTagsPropagation) {
+ if (allowTagsPropagation) {
+ return ImmutableMap.copyOf(getExecutionInfo(rule));
+ } else {
+ return ImmutableMap.of();
+ }
+ }
+
+ /**
* Returns the execution info, obtained from the rule's tags and the execution requirements
* provided. Only supported tags are included into the execution info, see {@link
* #legalExecInfoKeys}.