@@ -261,6 +261,7 @@ def _generate_bindings(ctx, dep_bindings_infos, config, label, features, cli_fla
261261 crubit_args .add ("--source-crate-name" , self_crate_name )
262262 if self_rmeta != None :
263263 crubit_args .add ("--extern={}={}" .format (self_crate_name , self_rmeta .path ))
264+
264265 crubit_args .add ("--enable-rmeta-interface" )
265266 is_golden_test = is_golden_test_override if is_golden_test_override != None else ctx .attr ._is_golden_test [BuildSettingInfo ].value
266267 if is_golden_test :
@@ -393,6 +394,8 @@ def _cc_bindings_from_rust_aspect_impl(target, ctx):
393394
394395 if CrateInfo not in target :
395396 return []
397+ if CcBindingsFromRustInfo in target :
398+ return []
396399 if str (target .label ) in targets_to_remove :
397400 return []
398401
@@ -486,6 +489,11 @@ def _cc_bindings_from_rust_aspect_impl(target, ctx):
486489 aspect_hints = ctx .rule .attr .aspect_hints ,
487490 rust_infos = dep_bindings_infos ,
488491 )
492+ (extra_cc_hdrs , extra_cc_srcs ) = get_additional_cc_hdrs_and_srcs (ctx .rule .attr .aspect_hints )
493+ for hdr in extra_cc_hdrs :
494+ if hdr .short_path .endswith ("_extracted_cc.h" ):
495+ cli_flags .append ("--extra-rs-srcs-include=" + hdr .short_path )
496+
489497 bindings_info , features , config , output_depset = _generate_bindings (
490498 ctx ,
491499 dep_bindings_infos = dep_bindings_infos ,
@@ -504,8 +512,6 @@ def _cc_bindings_from_rust_aspect_impl(target, ctx):
504512
505513 dep_variant_info = _compile_rs_out_file (ctx , ctx .rule .attr , bindings_info .rust_file , target [CrateInfo ].name , [target ])
506514
507- (extra_cc_hdrs , extra_cc_srcs ) = get_additional_cc_hdrs_and_srcs (ctx .rule .attr .aspect_hints )
508-
509515 cc_info = _make_cc_info_for_h_out_file (
510516 ctx ,
511517 bindings_info .h_file ,
0 commit comments