@@ -176,6 +176,9 @@ _RUST_CRATE_MACRO_CALL = """{indent}rust_crate(
176176{indent} deps = [
177177{indent} {deps}
178178{indent} ]{extra_deps}{conditional_deps},
179+ {indent} link_deps = [
180+ {indent} {link_deps}
181+ {indent} ]{conditional_link_deps},
179182{indent} data = [
180183{indent} {data}
181184{indent} ],
@@ -220,6 +223,11 @@ def render_rust_crate_call(attr, values, bazel_metadata = {}, extra_deps = "", i
220223 rustc_flags , conditional_rustc_flags = render_select (attr .rustc_flags , attr .rustc_flags_select , use_legacy_rules_rust_platforms )
221224 deps , conditional_deps = render_select (attr .deps + bazel_metadata .get ("deps" , []), attr .deps_select , use_legacy_rules_rust_platforms )
222225 build_script_env_files = getattr (attr , "build_script_env_files" , []) + ["cargo_toml_env_vars.env" ]
226+ link_deps , conditional_link_deps = render_select (
227+ getattr (attr , "link_deps" , []),
228+ getattr (attr , "link_deps_select" , {}),
229+ use_legacy_rules_rust_platforms ,
230+ )
223231
224232 conditional_build_script_env = render_select_build_script_env (attr .build_script_env_select , use_legacy_rules_rust_platforms )
225233
@@ -250,6 +258,8 @@ def render_rust_crate_call(attr, values, bazel_metadata = {}, extra_deps = "", i
250258 deps = list_indent .join (['"%s"' % d for d in sorted (deps )]),
251259 extra_deps = extra_deps ,
252260 conditional_deps = " + " + conditional_deps if conditional_deps else "" ,
261+ link_deps = list_indent .join (['"%s"' % d for d in sorted (link_deps )]),
262+ conditional_link_deps = " + " + conditional_link_deps if conditional_link_deps else "" ,
253263 data = list_indent .join (['"%s"' % str (d ) for d in attr .data ]),
254264 extra_compile_data_attr = extra_compile_data_attr ,
255265 crate_features = repr (sorted (crate_features )),
@@ -322,6 +332,8 @@ rust_crate_attrs = {
322332 "data" : attr .label_list (),
323333 "deps" : attr .label_list (),
324334 "deps_select" : _label_list_dict (),
335+ "link_deps" : attr .string_list (),
336+ "link_deps_select" : attr .string_list_dict (),
325337 "aliases" : attr .string_dict (),
326338 "crate_features" : attr .string_list (),
327339 "crate_features_select" : attr .string_list_dict (),
0 commit comments