xref: /aosp_15_r20/external/bazelbuild-rules_rust/tools/upstream_wrapper/BUILD.bazel (revision d4726bddaa87cc4778e7472feed243fa4b6c267f)
1load("//rust:defs.bzl", "rust_binary")
2
3tools = {
4    "cargo": "//rust/toolchain:current_cargo_files",
5    "cargo_clippy": "//rust/toolchain:current_cargo_clippy_files",
6    "rustc": "//rust/toolchain:current_rustc_files",
7    "rustfmt": "//rust/toolchain:current_rustfmt_toolchain_for_target",
8}
9
10all_tools = [target for target in tools.values()]
11
12[
13    rust_binary(
14        name = tool_name,
15        srcs = [
16            "src/main.rs",
17        ],
18        # Cargo calls out to the other tools.
19        # Make sure that they are included in the runfiles.
20        data = all_tools if tool_name == "cargo" else [target],
21        edition = "2018",
22        rustc_env = {
23            "WRAPPED_TOOL_NAME": tool_name,
24            "WRAPPED_TOOL_TARGET": "$(rlocationpath {})".format(target),
25        },
26        toolchains = ["@rules_rust//rust/toolchain:current_rust_toolchain"],
27        visibility = ["//visibility:public"],
28        deps = [
29            "//tools/runfiles",
30        ],
31    )
32    for (tool_name, target) in tools.items()
33]
34