Skip to content

Commit 425e2d7

Browse files
katrecopybara-github
authored andcommitted
Make genrule.exec_tools only exist in Bazel.
This is a step towards removing it entirely, see #19132. Next step is to add an actual incompatible flag if possible. RELNOTES: The `genrule` attribute `exec_tools` will be removed in a future Bazel release. Please follow directions at #19132 to migrate away from it. PiperOrigin-RevId: 552469827 Change-Id: Ica480e1113a1b8aeae31ad0713c41660416248b6
1 parent cbbe54b commit 425e2d7

File tree

5 files changed

+32
-16
lines changed

5 files changed

+32
-16
lines changed

src/main/java/com/google/devtools/build/lib/bazel/rules/genrule/BUILD

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,5 +20,6 @@ java_library(
2020
"//src/main/java/com/google/devtools/build/lib/analysis:rule_definition_environment",
2121
"//src/main/java/com/google/devtools/build/lib/packages",
2222
"//src/main/java/com/google/devtools/build/lib/rules/genrule",
23+
"//src/main/java/com/google/devtools/build/lib/util:filetype",
2324
],
2425
)

src/main/java/com/google/devtools/build/lib/bazel/rules/genrule/BazelGenRule.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414

1515
package com.google.devtools.build.lib.bazel.rules.genrule;
1616

17+
import com.google.devtools.build.lib.analysis.CommandHelper;
1718
import com.google.devtools.build.lib.analysis.RuleContext;
1819
import com.google.devtools.build.lib.packages.Type;
1920
import com.google.devtools.build.lib.rules.genrule.GenRuleBase;
@@ -30,4 +31,15 @@ protected boolean isStampingEnabled(RuleContext ruleContext) {
3031
}
3132
return ruleContext.attributes().get("stamp", Type.BOOLEAN);
3233
}
34+
35+
// TODO(https://github.com/bazelbuild/bazel/issues/19132): Remove this override once downstream
36+
// projects are migrated.
37+
@Override
38+
protected CommandHelper.Builder commandHelperBuilder(RuleContext ruleContext) {
39+
return CommandHelper.builder(ruleContext)
40+
.addToolDependencies("tools")
41+
// TODO(https://github.com/bazelbuild/bazel/issues/19132): Add an actual incompatible flag.
42+
.addToolDependencies("exec_tools")
43+
.addToolDependencies("toolchains");
44+
}
3345
}

src/main/java/com/google/devtools/build/lib/bazel/rules/genrule/BazelGenRuleRule.java

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,13 +15,15 @@
1515

1616
import static com.google.devtools.build.lib.packages.Attribute.attr;
1717
import static com.google.devtools.build.lib.packages.BuildType.LABEL;
18+
import static com.google.devtools.build.lib.packages.BuildType.LABEL_LIST;
1819
import static com.google.devtools.build.lib.packages.Type.BOOLEAN;
1920

2021
import com.google.devtools.build.lib.analysis.RuleDefinition;
2122
import com.google.devtools.build.lib.analysis.RuleDefinitionEnvironment;
2223
import com.google.devtools.build.lib.analysis.config.ExecutionTransitionFactory;
2324
import com.google.devtools.build.lib.packages.RuleClass;
2425
import com.google.devtools.build.lib.rules.genrule.GenRuleBaseRule;
26+
import com.google.devtools.build.lib.util.FileTypeSet;
2527

2628
/**
2729
* Rule definition for genrule for Bazel.
@@ -44,6 +46,23 @@ public RuleClass build(RuleClass.Builder builder, RuleDefinitionEnvironment env)
4446
.cfg(ExecutionTransitionFactory.createFactory())
4547
.value(env.getToolsLabel(GENRULE_SETUP_LABEL)))
4648

49+
// TODO(https://github.com/bazelbuild/bazel/issues/19132): Remove this once downstream
50+
// projects are migrated.
51+
/* <!-- #BLAZE_RULE(genrule).ATTRIBUTE(exec_tools) -->
52+
<b>Deprecated. Use <a href="#genrule.tools"><code>tools</code></a> instead.</b>
53+
54+
<p>
55+
There was a period of time when <code>exec_tools</code> and <code>tools</code> behaved
56+
differently, but they are now equivalent and the Blaze team will be migrating all uses of
57+
<code>exec_tools</code> to <code>tools</code>.
58+
</p>
59+
<!-- #END_BLAZE_RULE.ATTRIBUTE --> */
60+
.add(
61+
attr("exec_tools", LABEL_LIST)
62+
.cfg(ExecutionTransitionFactory.createFactory())
63+
.allowedFileTypes(FileTypeSet.ANY_FILE)
64+
.dontCheckConstraints())
65+
4766
// TODO(bazel-team): stamping doesn't seem to work. Fix it or remove attribute.
4867
.add(attr("stamp", BOOLEAN).value(false))
4968
.build();

src/main/java/com/google/devtools/build/lib/rules/genrule/GenRuleBase.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -289,7 +289,6 @@ public String toString() {
289289
protected CommandHelper.Builder commandHelperBuilder(RuleContext ruleContext) {
290290
return CommandHelper.builder(ruleContext)
291291
.addToolDependencies("tools")
292-
.addToolDependencies("exec_tools")
293292
.addToolDependencies("toolchains");
294293
}
295294

src/main/java/com/google/devtools/build/lib/rules/genrule/GenRuleBaseRule.java

Lines changed: 0 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -85,21 +85,6 @@ public RuleClass build(
8585
.cfg(ExecutionTransitionFactory.createFactory())
8686
.allowedFileTypes(FileTypeSet.ANY_FILE))
8787

88-
/* <!-- #BLAZE_RULE(genrule).ATTRIBUTE(exec_tools) -->
89-
<b>Deprecated. Use <a href="#genrule.tools"><code>tools</code></a> instead.</b>
90-
91-
<p>
92-
There was a period of time when <code>exec_tools</code> and <code>tools</code> behaved
93-
differently, but they are now equivalent and the Blaze team will be migrating all uses of
94-
<code>exec_tools</code> to <code>tools</code>.
95-
</p>
96-
<!-- #END_BLAZE_RULE.ATTRIBUTE --> */
97-
.add(
98-
attr("exec_tools", LABEL_LIST)
99-
.cfg(ExecutionTransitionFactory.createFactory())
100-
.allowedFileTypes(FileTypeSet.ANY_FILE)
101-
.dontCheckConstraints())
102-
10388
/* <!-- #BLAZE_RULE(genrule).ATTRIBUTE(outs) -->
10489
A list of files generated by this rule.
10590
<p>

0 commit comments

Comments
 (0)