@@ -664,7 +664,7 @@ pub struct Analysis {
664
664
}
665
665
666
666
impl Step for Analysis {
667
- type Output = PathBuf ;
667
+ type Output = Option < PathBuf > ;
668
668
const DEFAULT : bool = true ;
669
669
670
670
fn should_run ( run : ShouldRun < ' _ > ) -> ShouldRun < ' _ > {
@@ -687,52 +687,26 @@ impl Step for Analysis {
687
687
}
688
688
689
689
/// Creates a tarball of save-analysis metadata, if available.
690
- fn run ( self , builder : & Builder < ' _ > ) -> PathBuf {
690
+ fn run ( self , builder : & Builder < ' _ > ) -> Option < PathBuf > {
691
691
let compiler = self . compiler ;
692
692
let target = self . target ;
693
693
assert ! ( builder. config. extended) ;
694
- let name = pkgname ( builder, "rust-analysis" ) ;
695
-
696
694
if compiler. host != builder. config . build {
697
- return distdir ( builder ) . join ( format ! ( "{}-{}.tar.gz" , name , target . triple ) ) ;
695
+ return None ;
698
696
}
699
697
700
698
builder. ensure ( compile:: Std { compiler, target } ) ;
701
-
702
- let image = tmpdir ( builder) . join ( format ! ( "{}-{}-image" , name, target. triple) ) ;
703
-
704
699
let src = builder
705
700
. stage_out ( compiler, Mode :: Std )
706
701
. join ( target. triple )
707
702
. join ( builder. cargo_dir ( ) )
708
- . join ( "deps" ) ;
709
-
710
- let image_src = src. join ( "save-analysis" ) ;
711
- let dst = image. join ( "lib/rustlib" ) . join ( target. triple ) . join ( "analysis" ) ;
712
- t ! ( fs:: create_dir_all( & dst) ) ;
713
- builder. info ( & format ! ( "image_src: {:?}, dst: {:?}" , image_src, dst) ) ;
714
- builder. cp_r ( & image_src, & dst) ;
715
-
716
- let mut cmd = rust_installer ( builder) ;
717
- cmd. arg ( "generate" )
718
- . arg ( "--product-name=Rust" )
719
- . arg ( "--rel-manifest-dir=rustlib" )
720
- . arg ( "--success-message=save-analysis-saved." )
721
- . arg ( "--image-dir" )
722
- . arg ( & image)
723
- . arg ( "--work-dir" )
724
- . arg ( & tmpdir ( builder) )
725
- . arg ( "--output-dir" )
726
- . arg ( & distdir ( builder) )
727
- . arg ( format ! ( "--package-name={}-{}" , name, target. triple) )
728
- . arg ( format ! ( "--component-name=rust-analysis-{}" , target. triple) )
729
- . arg ( "--legacy-manifest-dirs=rustlib,cargo" ) ;
703
+ . join ( "deps" )
704
+ . join ( "save-analysis" ) ;
730
705
731
- builder. info ( "Dist analysis" ) ;
732
- let _time = timeit ( builder) ;
733
- builder. run ( & mut cmd) ;
734
- builder. remove_dir ( & image) ;
735
- distdir ( builder) . join ( format ! ( "{}-{}.tar.gz" , name, target. triple) )
706
+ let mut tarball = Tarball :: new ( builder, "rust-analysis" , & target. triple ) ;
707
+ tarball. include_target_in_component_name ( true ) ;
708
+ tarball. add_dir ( src, format ! ( "lib/rustlib/{}/analysis" , target. triple) ) ;
709
+ Some ( tarball. generate ( ) )
736
710
}
737
711
}
738
712
@@ -1652,7 +1626,9 @@ impl Step for Extended {
1652
1626
tarballs. extend ( miri_installer. clone ( ) ) ;
1653
1627
tarballs. extend ( rustfmt_installer. clone ( ) ) ;
1654
1628
tarballs. extend ( llvm_tools_installer) ;
1655
- tarballs. push ( analysis_installer) ;
1629
+ if let Some ( analysis_installer) = analysis_installer {
1630
+ tarballs. push ( analysis_installer) ;
1631
+ }
1656
1632
tarballs. push ( std_installer. expect ( "missing std" ) ) ;
1657
1633
if let Some ( docs_installer) = docs_installer {
1658
1634
tarballs. push ( docs_installer) ;
0 commit comments