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