@@ -5,7 +5,9 @@ load("//rs:rust_library.bzl", "rust_library")
55load ("//rs:rust_proc_macro.bzl" , "rust_proc_macro" )
66load ("//rs/private:rust_deps.bzl" , "rust_deps" )
77
8- def _platform (triple ):
8+ def _platform (triple , use_experimental_platforms ):
9+ if use_experimental_platforms :
10+ return "@rules_rs//rs/experimental/platforms/config:" + triple
911 return "@rules_rust//rust/platform:" + triple .replace ("-musl" , "-gnu" ).replace ("-gnullvm" , "-msvc" )
1012
1113def rust_crate (
@@ -32,7 +34,8 @@ def rust_crate(
3234 build_script_tools ,
3335 build_script_tags ,
3436 is_proc_macro ,
35- binaries ):
37+ binaries ,
38+ use_experimental_platforms ):
3639
3740 package_metadata (
3841 name = name + "_package_metadata" ,
@@ -77,7 +80,7 @@ def rust_crate(
7780 # do this is to stamp out a build script per target with the right feature set, and then select among them.
7881 for triple in triples :
7982 build_script_name = name + "_" + triple + "_build_script"
80- branches [_platform (triple )] = build_script_name
83+ branches [_platform (triple , use_experimental_platforms )] = build_script_name
8184
8285 _build_script (
8386 name = build_script_name ,
@@ -138,7 +141,7 @@ def rust_crate(
138141 data = data ,
139142 proc_macro_deps = [name + "_proc_macro_deps" ],
140143 crate_features = crate_features + select (
141- {_platform (k ): v for k , v in conditional_crate_features .items ()} |
144+ {_platform (k , use_experimental_platforms ): v for k , v in conditional_crate_features .items ()} |
142145 {"//conditions:default" : []},
143146 ),
144147 crate_root = crate_root ,
0 commit comments