1
+ load ("@bazel_skylib//lib:selects.bzl" , "selects" )
2
+ load ("@bazel_skylib//rules:native_binary.bzl" , "native_binary" )
1
3
load ("//rust:defs.bzl" , "rust_test" )
2
4
3
5
# buildifier: disable=bzl-visibility
4
6
load ("//rust/private:rust.bzl" , "rust_binary_without_process_wrapper" )
5
7
8
+ config_setting (
9
+ name = "compilation_mode_opt" ,
10
+ values = {"compilation_mode" : "opt" },
11
+ )
12
+
13
+ selects .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
+
22
+ selects .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
+
6
31
rust_binary_without_process_wrapper (
7
32
name = "process_wrapper" ,
8
33
srcs = glob (["*.rs" ]),
9
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
+ }),
10
43
visibility = ["//visibility:public" ],
11
44
deps = [
12
45
"@rules_rust_tinyjson//:tinyjson" ,
@@ -18,3 +51,16 @@ rust_test(
18
51
crate = ":process_wrapper" ,
19
52
edition = "2018" ,
20
53
)
54
+
55
+ native_binary (
56
+ name = "bootstrap_process_wrapper" ,
57
+ src = select ({
58
+ "@platforms//os:windows" : "process_wrapper.bat" ,
59
+ "//conditions:default" : "process_wrapper.sh" ,
60
+ }),
61
+ out = select ({
62
+ "@platforms//os:windows" : "process_wrapper.bat" ,
63
+ "//conditions:default" : "process_wrapper.sh" ,
64
+ }),
65
+ visibility = ["//visibility:public" ],
66
+ )
0 commit comments