@@ -335,8 +335,18 @@ impl RustwideBuilder {
335335 . run ( |build| {
336336 let metadata = Metadata :: from_crate_root ( build. host_source_dir ( ) ) ?;
337337
338- let res =
339- self . execute_build ( HOST_TARGET , true , build, & limits, & metadata, true , false ) ?;
338+ let res = self . execute_build (
339+ BuildId ( 0 ) ,
340+ DUMMY_CRATE_NAME ,
341+ DUMMY_CRATE_VERSION ,
342+ HOST_TARGET ,
343+ true ,
344+ build,
345+ & limits,
346+ & metadata,
347+ true ,
348+ false ,
349+ ) ?;
340350 if !res. result . successful {
341351 bail ! ( "failed to build dummy crate for {}" , rustc_version) ;
342352 }
@@ -550,14 +560,13 @@ impl RustwideBuilder {
550560 build. fetch_build_std_dependencies ( & targets) ?;
551561 }
552562
553- self . execute_json_build ( build_id, name, version, default_target, true , build, & metadata, & limits) ?;
554563
555564 let mut has_docs = false ;
556565 let mut successful_targets = Vec :: new ( ) ;
557566
558567 // Perform an initial build
559568 let mut res =
560- self . execute_build ( default_target, true , build, & limits, & metadata, false , collect_metrics) ?;
569+ self . execute_build ( build_id , name , version , default_target, true , build, & limits, & metadata, false , collect_metrics) ?;
561570
562571 // If the build fails with the lockfile given, try using only the dependencies listed in Cargo.toml.
563572 let cargo_lock = build. host_source_dir ( ) . join ( "Cargo.lock" ) ;
@@ -578,10 +587,8 @@ impl RustwideBuilder {
578587 . args ( & [ "fetch" , "--locked" ] )
579588 . run_capture ( ) ?;
580589 }
581- // let's assume the JSON build also failed when the main build failed
582- self . execute_json_build ( build_id, name, version, default_target, true , build, & metadata, & limits) ?;
583590 res =
584- self . execute_build ( default_target, true , build, & limits, & metadata, false , collect_metrics) ?;
591+ self . execute_build ( build_id , name , version , default_target, true , build, & limits, & metadata, false , collect_metrics) ?;
585592 }
586593
587594 if res. result . successful {
@@ -611,10 +618,8 @@ impl RustwideBuilder {
611618 // Limit the number of targets so that no one can try to build all 200000 possible targets
612619 for target in other_targets. into_iter ( ) . take ( limits. targets ( ) ) {
613620 debug ! ( "building package {} {} for {}" , name, version, target) ;
614- if !metadata. proc_macro {
615- self . execute_json_build ( build_id, name, version, target, false , build, & metadata, & limits) ?;
616- }
617621 let target_res = self . build_target (
622+ build_id, name, version,
618623 target,
619624 build,
620625 & limits,
@@ -790,6 +795,9 @@ impl RustwideBuilder {
790795 #[ allow( clippy:: too_many_arguments) ]
791796 fn build_target (
792797 & self ,
798+ build_id : BuildId ,
799+ name : & str ,
800+ version : & str ,
793801 target : & str ,
794802 build : & Build ,
795803 limits : & Limits ,
@@ -799,6 +807,9 @@ impl RustwideBuilder {
799807 collect_metrics : bool ,
800808 ) -> Result < FullBuildResult > {
801809 let target_res = self . execute_build (
810+ build_id,
811+ name,
812+ version,
802813 target,
803814 false ,
804815 build,
@@ -975,6 +986,9 @@ impl RustwideBuilder {
975986 #[ allow( clippy:: too_many_arguments) ]
976987 fn execute_build (
977988 & self ,
989+ build_id : BuildId ,
990+ name : & str ,
991+ version : & str ,
978992 target : & str ,
979993 is_default_target : bool ,
980994 build : & Build ,
@@ -1017,6 +1031,17 @@ impl RustwideBuilder {
10171031 }
10181032 } ;
10191033
1034+ self . execute_json_build (
1035+ build_id,
1036+ name,
1037+ version,
1038+ target,
1039+ is_default_target,
1040+ build,
1041+ metadata,
1042+ limits,
1043+ ) ?;
1044+
10201045 let successful = {
10211046 let _span = info_span ! ( "cargo_build" , target = %target, is_default_target) . entered ( ) ;
10221047 logging:: capture ( & storage, || {
0 commit comments