22
33load ("@aspect_bazel_lib//lib:expand_template.bzl" , _expand_template = "expand_template" )
44load ("@rules_rust//rust:defs.bzl" , _rust_binary = "rust_binary" , _rust_library = "rust_library" , _rust_proc_macro = "rust_proc_macro" , _rust_test = "rust_test" )
5+ load ("@with_cfg.bzl" , "with_cfg" )
56
67_default_platform = select ({
78 # Non-Linux binaries should just build with their default platforms
89 "//conditions:default" : None ,
910})
1011
11- def rust_binary (name , rustc_env_files = [], version_key = "" , crate_features = [], ** kwargs ):
12+ rust_opt_binary , _rust_opt_binary_internal = with_cfg (_rust_binary ).set (
13+ "compilation_mode" ,
14+ "opt" ,
15+ ).set (
16+ Label ("@rules_rust//:extra_rustc_flags" ),
17+ [
18+ "-Cstrip=symbols" ,
19+ "-Ccodegen-units=1" ,
20+ "-Cpanic=abort" ,
21+ ],
22+ # Avoid rules_rust trying to instrument this binary
23+ ).set ("collect_code_coverage" , "false" ).build ()
24+
25+ def rust_binary (name , rustc_env_files = [], version_key = "" , crate_features = [], platform = _default_platform , ** kwargs ):
1226 """
1327 Macro for rust_binary defaults.
1428
@@ -32,46 +46,22 @@ def rust_binary(name, rustc_env_files = [], version_key = "", crate_features = [
3246 )
3347 rustc_env_files = rustc_env_files + [rustc_env_file ]
3448
35- platform = kwargs .pop ("platform" , _default_platform )
36-
37- _rust_binary (
49+ # Note that we use symbol stripping to
50+ # try and make these artifacts reproducibly sized for the
51+ # container_structure tests.
52+ rust_opt_binary (
3853 name = name ,
3954 rustc_env_files = rustc_env_files ,
40- rustc_flags = select ({
41- "//bazel/release:is_opt" : [
42- "-Ccodegen-units=1" ,
43- "-Copt-level=3" ,
44- "-Cpanic=abort" ,
45- "-Cstrip=symbols" ,
46- ],
47- # Default/test configuration. Note that we use symbol stripping to
48- # try and make these artifacts reproducibly sized for the
49- # container_structure tests.
50- #
51- # TODO: Can we have a CI config condition here?
52- "//conditions:default" : [
53- "-Ccodegen-units=1" ,
54- "-Copt-level=3" ,
55- "-Cstrip=symbols" ,
56- ],
57- }),
5855 crate_features = crate_features + ["bazel" ],
5956 platform = platform ,
6057 ** kwargs
6158 )
6259
63- def rust_test (name , crate_features = [], ** kwargs ):
64- platform = kwargs .pop ("platform" , _default_platform )
65-
60+ def rust_test (name , crate_features = [], platform = _default_platform , ** kwargs ):
6661 _rust_test (
6762 name = name ,
6863 crate_features = crate_features + ["bazel" ],
6964 platform = platform ,
70- rustc_flags = select ({
71- "//conditions:default" : [
72- "-Copt-level=0" ,
73- ],
74- }),
7565 ** kwargs
7666 )
7767
@@ -99,22 +89,10 @@ def rust_library(name, rustc_env_files = [], version_key = "", crate_features =
9989 )
10090 stamp = - 1 # workaround https://github.com/bazelbuild/rules_rust/pull/3503
10191 rustc_env_files = rustc_env_files + [rustc_env_file ]
92+
10293 _rust_library (
10394 name = name ,
10495 rustc_env_files = rustc_env_files ,
105- rustc_flags = select ({
106- "//bazel/release:is_opt" : [
107- "-Ccodegen-units=1" ,
108- "-Copt-level=3" ,
109- "-Cpanic=abort" ,
110- "-Cstrip=symbols" ,
111- ],
112- "//conditions:default" : [
113- "-Ccodegen-units=1" ,
114- "-Copt-level=3" ,
115- "-Cstrip=symbols" ,
116- ],
117- }),
11896 crate_features = crate_features + ["bazel" ],
11997 stamp = stamp ,
12098 ** kwargs
@@ -131,19 +109,6 @@ def rust_proc_macro(name, crate_features = [], **kwargs):
131109 """
132110 _rust_proc_macro (
133111 name = name ,
134- rustc_flags = select ({
135- "//bazel/release:is_opt" : [
136- "-Ccodegen-units=1" ,
137- "-Copt-level=3" ,
138- "-Cpanic=abort" ,
139- "--release" ,
140- ],
141- "//conditions:default" : [
142- "-Ccodegen-units=1" ,
143- "-Copt-level=3" ,
144- "-Cstrip=debuginfo" ,
145- ],
146- }),
147112 crate_features = crate_features + ["bazel" ],
148113 ** kwargs
149114 )
0 commit comments