@@ -55,7 +55,7 @@ pub struct Docs {
5555}
5656
5757impl Step for Docs {
58- type Output = PathBuf ;
58+ type Output = Option < PathBuf > ;
5959 const DEFAULT : bool = true ;
6060
6161 fn should_run ( run : ShouldRun < ' _ > ) -> ShouldRun < ' _ > {
@@ -67,48 +67,25 @@ impl Step for Docs {
6767 }
6868
6969 /// Builds the `rust-docs` installer component.
70- fn run ( self , builder : & Builder < ' _ > ) -> PathBuf {
70+ fn run ( self , builder : & Builder < ' _ > ) -> Option < PathBuf > {
7171 let host = self . host ;
72-
73- let name = pkgname ( builder, "rust-docs" ) ;
74-
7572 if !builder. config . docs {
76- return distdir ( builder ) . join ( format ! ( "{}-{}.tar.gz" , name , host . triple ) ) ;
73+ return None ;
7774 }
7875
7976 builder. default_doc ( None ) ;
8077
8178 builder. info ( & format ! ( "Dist docs ({})" , host) ) ;
8279 let _time = timeit ( builder) ;
8380
84- let image = tmpdir ( builder) . join ( format ! ( "{}-{}-image" , name, host. triple) ) ;
85- let _ = fs:: remove_dir_all ( & image) ;
81+ let dest = "share/doc/rust/html" ;
8682
87- let dst = image. join ( "share/doc/rust/html" ) ;
88- t ! ( fs:: create_dir_all( & dst) ) ;
89- let src = builder. doc_out ( host) ;
90- builder. cp_r ( & src, & dst) ;
91- builder. install ( & builder. src . join ( "src/doc/robots.txt" ) , & dst, 0o644 ) ;
92-
93- let mut cmd = rust_installer ( builder) ;
94- cmd. arg ( "generate" )
95- . arg ( "--product-name=Rust-Documentation" )
96- . arg ( "--rel-manifest-dir=rustlib" )
97- . arg ( "--success-message=Rust-documentation-is-installed." )
98- . arg ( "--image-dir" )
99- . arg ( & image)
100- . arg ( "--work-dir" )
101- . arg ( & tmpdir ( builder) )
102- . arg ( "--output-dir" )
103- . arg ( & distdir ( builder) )
104- . arg ( format ! ( "--package-name={}-{}" , name, host. triple) )
105- . arg ( "--component-name=rust-docs" )
106- . arg ( "--legacy-manifest-dirs=rustlib,cargo" )
107- . arg ( "--bulk-dirs=share/doc/rust/html" ) ;
108- builder. run ( & mut cmd) ;
109- builder. remove_dir ( & image) ;
83+ let mut tarball = Tarball :: new ( builder, "rust-docs" , & host. triple ) ;
84+ tarball. set_product_name ( "Rust Documentation" ) ;
85+ tarball. add_dir ( & builder. doc_out ( host) , dest) ;
86+ tarball. add_file ( & builder. src . join ( "src/doc/robots.txt" ) , dest, 0o644 ) ;
11087
111- distdir ( builder ) . join ( format ! ( "{}-{}.tar.gz" , name , host . triple ) )
88+ Some ( tarball . generate ( ) )
11289 }
11390}
11491
@@ -1826,7 +1803,7 @@ impl Step for Extended {
18261803 tarballs. extend ( llvm_tools_installer) ;
18271804 tarballs. push ( analysis_installer) ;
18281805 tarballs. push ( std_installer) ;
1829- if builder . config . docs {
1806+ if let Some ( docs_installer ) = docs_installer {
18301807 tarballs. push ( docs_installer) ;
18311808 }
18321809 if target. contains ( "pc-windows-gnu" ) {
@@ -2509,7 +2486,7 @@ impl Step for RustDev {
25092486 // Copy the include directory as well; needed mostly to build
25102487 // librustc_llvm properly (e.g., llvm-config.h is in here). But also
25112488 // just broadly useful to be able to link against the bundled LLVM.
2512- tarball. add_dir ( & builder. llvm_out ( target) . join ( "include" ) , ". " ) ;
2489+ tarball. add_dir ( & builder. llvm_out ( target) . join ( "include" ) , "include " ) ;
25132490
25142491 // Copy libLLVM.so to the target lib dir as well, so the RPATH like
25152492 // `$ORIGIN/../lib` can find it. It may also be used as a dependency
0 commit comments