@@ -559,7 +559,7 @@ pub struct Std {
559
559
}
560
560
561
561
impl Step for Std {
562
- type Output = PathBuf ;
562
+ type Output = Option < PathBuf > ;
563
563
const DEFAULT : bool = true ;
564
564
565
565
fn should_run ( run : ShouldRun < ' _ > ) -> ShouldRun < ' _ > {
@@ -577,46 +577,24 @@ impl Step for Std {
577
577
} ) ;
578
578
}
579
579
580
- fn run ( self , builder : & Builder < ' _ > ) -> PathBuf {
580
+ fn run ( self , builder : & Builder < ' _ > ) -> Option < PathBuf > {
581
581
let compiler = self . compiler ;
582
582
let target = self . target ;
583
583
584
- let name = pkgname ( builder, "rust-std" ) ;
585
- let archive = distdir ( builder) . join ( format ! ( "{}-{}.tar.gz" , name, target. triple) ) ;
586
584
if skip_host_target_lib ( builder, compiler) {
587
- return archive ;
585
+ return None ;
588
586
}
589
587
590
588
builder. ensure ( compile:: Std { compiler, target } ) ;
591
589
592
- let image = tmpdir ( builder) . join ( format ! ( "{}-{}-image ", name , target. triple) ) ;
593
- let _ = fs :: remove_dir_all ( & image ) ;
590
+ let mut tarball = Tarball :: new ( builder, "rust-std ", & target. triple ) ;
591
+ tarball . include_target_in_component_name ( true ) ;
594
592
595
593
let compiler_to_use = builder. compiler_for ( compiler. stage , compiler. host , target) ;
596
594
let stamp = compile:: libstd_stamp ( builder, compiler_to_use, target) ;
597
- copy_target_libs ( builder, target, & image, & stamp) ;
598
-
599
- let mut cmd = rust_installer ( builder) ;
600
- cmd. arg ( "generate" )
601
- . arg ( "--product-name=Rust" )
602
- . arg ( "--rel-manifest-dir=rustlib" )
603
- . arg ( "--success-message=std-is-standing-at-the-ready." )
604
- . arg ( "--image-dir" )
605
- . arg ( & image)
606
- . arg ( "--work-dir" )
607
- . arg ( & tmpdir ( builder) )
608
- . arg ( "--output-dir" )
609
- . arg ( & distdir ( builder) )
610
- . arg ( format ! ( "--package-name={}-{}" , name, target. triple) )
611
- . arg ( format ! ( "--component-name=rust-std-{}" , target. triple) )
612
- . arg ( "--legacy-manifest-dirs=rustlib,cargo" ) ;
595
+ copy_target_libs ( builder, target, & tarball. image_dir ( ) , & stamp) ;
613
596
614
- builder
615
- . info ( & format ! ( "Dist std stage{} ({} -> {})" , compiler. stage, & compiler. host, target) ) ;
616
- let _time = timeit ( builder) ;
617
- builder. run ( & mut cmd) ;
618
- builder. remove_dir ( & image) ;
619
- archive
597
+ Some ( tarball. generate ( ) )
620
598
}
621
599
}
622
600
@@ -1699,7 +1677,7 @@ impl Step for Extended {
1699
1677
tarballs. extend ( rustfmt_installer. clone ( ) ) ;
1700
1678
tarballs. extend ( llvm_tools_installer) ;
1701
1679
tarballs. push ( analysis_installer) ;
1702
- tarballs. push ( std_installer) ;
1680
+ tarballs. push ( std_installer. expect ( "missing std" ) ) ;
1703
1681
if let Some ( docs_installer) = docs_installer {
1704
1682
tarballs. push ( docs_installer) ;
1705
1683
}
0 commit comments