blob: 4c4ce057068b77c2e1a749ba05607da05a85c465 [file] [log] [blame]
load("@bazel_skylib//lib:selects.bzl", "selects")
load("//rust:defs.bzl", "rust_test")
# buildifier: disable=bzl-visibility
load("//rust/private:rust.bzl", "rust_binary_without_process_wrapper")
load("//util/process_wrapper/private:bootstrap_process_wrapper.bzl", "bootstrap_process_wrapper")
config_setting(
name = "compilation_mode_opt",
values = {"compilation_mode": "opt"},
)
selects.config_setting_group(
name = "opt_linux",
match_all = [
":compilation_mode_opt",
"@platforms//os:linux",
],
visibility = ["@rules_rust_tinyjson//:__pkg__"],
)
selects.config_setting_group(
name = "opt_macos",
match_all = [
":compilation_mode_opt",
"@platforms//os:macos",
],
visibility = ["@rules_rust_tinyjson//:__pkg__"],
)
rust_binary_without_process_wrapper(
name = "process_wrapper",
srcs = glob(["*.rs"]),
edition = "2018",
# To ensure the process wrapper is produced deterministically
# debug info, which is known to sometimes have host specific
# paths embedded in this section, is stripped out.
rustc_flags = select({
":opt_linux": ["-Cstrip=debuginfo"],
":opt_macos": ["-Cstrip=debuginfo"],
"//conditions:default": [],
}),
visibility = ["//visibility:public"],
deps = [
"@rules_rust_tinyjson//:tinyjson",
],
)
rust_test(
name = "process_wrapper_test",
crate = ":process_wrapper",
edition = "2018",
)
bootstrap_process_wrapper(
name = "bootstrap_process_wrapper",
is_windows = select({
"@platforms//os:windows": True,
"//conditions:default": False,
}),
visibility = ["//visibility:public"],
)