@@ -55,7 +55,7 @@ pub struct Docs {
55
55
}
56
56
57
57
impl Step for Docs {
58
- type Output = PathBuf ;
58
+ type Output = Option < PathBuf > ;
59
59
const DEFAULT : bool = true ;
60
60
61
61
fn should_run ( run : ShouldRun < ' _ > ) -> ShouldRun < ' _ > {
@@ -67,48 +67,25 @@ impl Step for Docs {
67
67
}
68
68
69
69
/// Builds the `rust-docs` installer component.
70
- fn run ( self , builder : & Builder < ' _ > ) -> PathBuf {
70
+ fn run ( self , builder : & Builder < ' _ > ) -> Option < PathBuf > {
71
71
let host = self . host ;
72
-
73
- let name = pkgname ( builder, "rust-docs" ) ;
74
-
75
72
if !builder. config . docs {
76
- return distdir ( builder ) . join ( format ! ( "{}-{}.tar.gz" , name , host . triple ) ) ;
73
+ return None ;
77
74
}
78
75
79
76
builder. default_doc ( None ) ;
80
77
81
78
builder. info ( & format ! ( "Dist docs ({})" , host) ) ;
82
79
let _time = timeit ( builder) ;
83
80
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" ;
86
82
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 ) ;
110
87
111
- distdir ( builder ) . join ( format ! ( "{}-{}.tar.gz" , name , host . triple ) )
88
+ Some ( tarball . generate ( ) )
112
89
}
113
90
}
114
91
@@ -1826,7 +1803,7 @@ impl Step for Extended {
1826
1803
tarballs. extend ( llvm_tools_installer) ;
1827
1804
tarballs. push ( analysis_installer) ;
1828
1805
tarballs. push ( std_installer) ;
1829
- if builder . config . docs {
1806
+ if let Some ( docs_installer ) = docs_installer {
1830
1807
tarballs. push ( docs_installer) ;
1831
1808
}
1832
1809
if target. contains ( "pc-windows-gnu" ) {
@@ -2509,7 +2486,7 @@ impl Step for RustDev {
2509
2486
// Copy the include directory as well; needed mostly to build
2510
2487
// librustc_llvm properly (e.g., llvm-config.h is in here). But also
2511
2488
// 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 " ) ;
2513
2490
2514
2491
// Copy libLLVM.so to the target lib dir as well, so the RPATH like
2515
2492
// `$ORIGIN/../lib` can find it. It may also be used as a dependency
0 commit comments