Skip to content

Commit b778fca

Browse files
authored
crate_universe: propagate build_script_tools (bazelbuild#1266)
* crate_universe: propagate build_script_tools argument Propagate the build_script_tools attribute from the crate annotations to the generated cargo_build_script rule. * Regenerate documentation
1 parent f6f27a8 commit b778fca

File tree

3 files changed

+12
-1
lines changed

3 files changed

+12
-1
lines changed

crate_universe/private/crate.bzl

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,7 @@ def _annotation(
6565
additive_build_file = None,
6666
additive_build_file_content = None,
6767
build_script_data = None,
68+
build_script_tools = None,
6869
build_script_data_glob = None,
6970
build_script_deps = None,
7071
build_script_env = None,
@@ -93,6 +94,7 @@ def _annotation(
9394
additive_build_file (str, optional): A file containing extra contents to write to the bottom of
9495
generated BUILD files.
9596
build_script_data (list, optional): A list of labels to add to a crate's `cargo_build_script::data` attribute.
97+
build_script_tools (list, optional): A list of labels to add to a crate's `cargo_build_script::tools` attribute.
9698
build_script_data_glob (list, optional): A list of glob patterns to add to a crate's `cargo_build_script::data`
9799
attribute.
98100
build_script_deps (list, optional): A list of labels to add to a crate's `cargo_build_script::deps` attribute.
@@ -142,6 +144,7 @@ def _annotation(
142144
additive_build_file = additive_build_file,
143145
additive_build_file_content = additive_build_file_content,
144146
build_script_data = build_script_data,
147+
build_script_tools = build_script_tools,
145148
build_script_data_glob = build_script_data_glob,
146149
build_script_deps = build_script_deps,
147150
build_script_env = build_script_env,

crate_universe/src/context/crate_context.rs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -456,6 +456,13 @@ impl CrateContext {
456456
}
457457
}
458458

459+
// Tools
460+
if let Some(extra) = &crate_extra.build_script_tools {
461+
for data in extra {
462+
attrs.tools.insert(data.clone(), None);
463+
}
464+
}
465+
459466
// Data glob
460467
if let Some(extra) = &crate_extra.build_script_data_glob {
461468
attrs.data_glob.extend(extra.clone());

docs/crate_universe.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -285,7 +285,7 @@ string: A json encoded string of all inputs
285285

286286
<pre>
287287
crate.annotation(<a href="#crate.annotation-version">version</a>, <a href="#crate.annotation-additive_build_file">additive_build_file</a>, <a href="#crate.annotation-additive_build_file_content">additive_build_file_content</a>, <a href="#crate.annotation-build_script_data">build_script_data</a>,
288-
<a href="#crate.annotation-build_script_data_glob">build_script_data_glob</a>, <a href="#crate.annotation-build_script_deps">build_script_deps</a>, <a href="#crate.annotation-build_script_env">build_script_env</a>,
288+
<a href="#crate.annotation-build_script_tools">build_script_tools</a>, <a href="#crate.annotation-build_script_data_glob">build_script_data_glob</a>, <a href="#crate.annotation-build_script_deps">build_script_deps</a>, <a href="#crate.annotation-build_script_env">build_script_env</a>,
289289
<a href="#crate.annotation-build_script_proc_macro_deps">build_script_proc_macro_deps</a>, <a href="#crate.annotation-build_script_rustc_env">build_script_rustc_env</a>, <a href="#crate.annotation-compile_data">compile_data</a>,
290290
<a href="#crate.annotation-compile_data_glob">compile_data_glob</a>, <a href="#crate.annotation-crate_features">crate_features</a>, <a href="#crate.annotation-data">data</a>, <a href="#crate.annotation-data_glob">data_glob</a>, <a href="#crate.annotation-deps">deps</a>, <a href="#crate.annotation-gen_build_script">gen_build_script</a>,
291291
<a href="#crate.annotation-patch_args">patch_args</a>, <a href="#crate.annotation-patch_tool">patch_tool</a>, <a href="#crate.annotation-patches">patches</a>, <a href="#crate.annotation-proc_macro_deps">proc_macro_deps</a>, <a href="#crate.annotation-rustc_env">rustc_env</a>, <a href="#crate.annotation-rustc_env_files">rustc_env_files</a>,
@@ -303,6 +303,7 @@ A collection of extra attributes and settings for a particular crate
303303
| <a id="crate.annotation-additive_build_file"></a>additive_build_file | A file containing extra contents to write to the bottom of generated BUILD files. | <code>None</code> |
304304
| <a id="crate.annotation-additive_build_file_content"></a>additive_build_file_content | Extra contents to write to the bottom of generated BUILD files. | <code>None</code> |
305305
| <a id="crate.annotation-build_script_data"></a>build_script_data | A list of labels to add to a crate's <code>cargo_build_script::data</code> attribute. | <code>None</code> |
306+
| <a id="crate.annotation-build_script_tools"></a>build_script_tools | A list of labels to add to a crate's <code>cargo_build_script::tools</code> attribute. | <code>None</code> |
306307
| <a id="crate.annotation-build_script_data_glob"></a>build_script_data_glob | A list of glob patterns to add to a crate's <code>cargo_build_script::data</code> attribute. | <code>None</code> |
307308
| <a id="crate.annotation-build_script_deps"></a>build_script_deps | A list of labels to add to a crate's <code>cargo_build_script::deps</code> attribute. | <code>None</code> |
308309
| <a id="crate.annotation-build_script_env"></a>build_script_env | Additional environment variables to set on a crate's <code>cargo_build_script::env</code> attribute. | <code>None</code> |

0 commit comments

Comments
 (0)