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"], )