xref: /aosp_15_r20/external/bazelbuild-rules_rust/util/process_wrapper/BUILD.bazel (revision d4726bddaa87cc4778e7472feed243fa4b6c267f)
1load("@bazel_skylib//lib:selects.bzl", "selects")
2load("//rust:defs.bzl", "rust_test")
3
4# buildifier: disable=bzl-visibility
5load("//rust/private:rust.bzl", "rust_binary_without_process_wrapper")
6load("//util/process_wrapper/private:bootstrap_process_wrapper.bzl", "bootstrap_process_wrapper")
7
8config_setting(
9    name = "compilation_mode_opt",
10    values = {"compilation_mode": "opt"},
11)
12
13selects.config_setting_group(
14    name = "opt_linux",
15    match_all = [
16        ":compilation_mode_opt",
17        "@platforms//os:linux",
18    ],
19    visibility = ["@rules_rust_tinyjson//:__pkg__"],
20)
21
22selects.config_setting_group(
23    name = "opt_macos",
24    match_all = [
25        ":compilation_mode_opt",
26        "@platforms//os:macos",
27    ],
28    visibility = ["@rules_rust_tinyjson//:__pkg__"],
29)
30
31rust_binary_without_process_wrapper(
32    name = "process_wrapper",
33    srcs = glob(["*.rs"]),
34    edition = "2018",
35    # To ensure the process wrapper is produced deterministically
36    # debug info, which is known to sometimes have host specific
37    # paths embedded in this section, is stripped out.
38    rustc_flags = select({
39        ":opt_linux": ["-Cstrip=debuginfo"],
40        ":opt_macos": ["-Cstrip=debuginfo"],
41        "//conditions:default": [],
42    }),
43    visibility = ["//visibility:public"],
44    deps = [
45        "@rules_rust_tinyjson//:tinyjson",
46    ],
47)
48
49rust_test(
50    name = "process_wrapper_test",
51    crate = ":process_wrapper",
52    edition = "2018",
53)
54
55bootstrap_process_wrapper(
56    name = "bootstrap_process_wrapper",
57    is_windows = select({
58        "@platforms//os:windows": True,
59        "//conditions:default": False,
60    }),
61    visibility = ["//visibility:public"],
62)
63