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