@@ -6,7 +6,7 @@ load("@rules_cc//cc:action_names.bzl", "ACTION_NAMES")
66load ("@rules_cc//cc:find_cc_toolchain.bzl" , find_cpp_toolchain = "find_cc_toolchain" )
77load ("@rules_cc//cc/common:cc_common.bzl" , "cc_common" )
88load ("//rust:defs.bzl" , "rust_common" )
9- load ("//rust:rust_common.bzl" , "BuildInfo" )
9+ load ("//rust:rust_common.bzl" , "BuildInfo" , "CrateGroupInfo" , "DepInfo" )
1010
1111# buildifier: disable=bzl-visibility
1212load (
@@ -545,8 +545,19 @@ def _cargo_build_script_impl(ctx):
545545 build_script_inputs .append (dep_build_info .out_dir )
546546
547547 for dep in ctx .attr .deps :
548- for dep_build_info in dep [rust_common .dep_info ].transitive_build_infos .to_list ():
549- build_script_inputs .append (dep_build_info .out_dir )
548+ dep_infos = []
549+ if DepInfo in dep :
550+ dep_infos = [dep [DepInfo ]]
551+ else :
552+ dep_infos = [
553+ dep_variant_info .dep_info
554+ for dep_variant_info in dep [CrateGroupInfo ].dep_variant_infos .to_list ()
555+ if dep_variant_info .dep_info
556+ ]
557+
558+ for dep_info in dep_infos :
559+ for dep_build_info in dep_info .transitive_build_infos .to_list ():
560+ build_script_inputs .append (dep_build_info .out_dir )
550561
551562 experimental_symlink_execroot = ctx .attr ._experimental_symlink_execroot [BuildSettingInfo ].value or \
552563 _feature_enabled (ctx , "symlink-exec-root" )
@@ -608,7 +619,7 @@ cargo_build_script = rule(
608619 ),
609620 "deps" : attr .label_list (
610621 doc = "The Rust build-dependencies of the crate" ,
611- providers = [rust_common . dep_info ],
622+ providers = [[ DepInfo ], [ CrateGroupInfo ] ],
612623 cfg = "exec" ,
613624 ),
614625 "link_deps" : attr .label_list (
@@ -617,7 +628,6 @@ cargo_build_script = rule(
617628 have the links attribute and therefore provide environment
618629 variables to this build script.
619630 """ ),
620- providers = [rust_common .dep_info ],
621631 ),
622632 "links" : attr .string (
623633 doc = "The name of the native library this crate links against." ,
0 commit comments