@@ -19,7 +19,7 @@ use crate::builder::{Builder, RunConfig, ShouldRun, Step};
19
19
use crate::cache::{Interned, INTERNER};
20
20
use crate::compile;
21
21
use crate::config::TargetSelection;
22
- use crate::tarball::{OverlayKind, Tarball};
22
+ use crate::tarball::{GeneratedTarball, OverlayKind, Tarball};
23
23
use crate::tool::{self, Tool};
24
24
use crate::util::{exe, is_dylib, timeit};
25
25
use crate::{Compiler, DependencyType, Mode, LLVM_TOOLS};
@@ -51,7 +51,7 @@ pub struct Docs {
51
51
}
52
52
53
53
impl Step for Docs {
54
- type Output = Option<PathBuf >;
54
+ type Output = Option<GeneratedTarball >;
55
55
const DEFAULT: bool = true;
56
56
57
57
fn should_run(run: ShouldRun<'_>) -> ShouldRun<'_> {
@@ -63,7 +63,7 @@ impl Step for Docs {
63
63
}
64
64
65
65
/// Builds the `rust-docs` installer component.
66
- fn run(self, builder: &Builder<'_>) -> Option<PathBuf > {
66
+ fn run(self, builder: &Builder<'_>) -> Option<GeneratedTarball > {
67
67
let host = self.host;
68
68
if !builder.config.docs {
69
69
return None;
@@ -86,7 +86,7 @@ pub struct RustcDocs {
86
86
}
87
87
88
88
impl Step for RustcDocs {
89
- type Output = Option<PathBuf >;
89
+ type Output = Option<GeneratedTarball >;
90
90
const DEFAULT: bool = true;
91
91
92
92
fn should_run(run: ShouldRun<'_>) -> ShouldRun<'_> {
@@ -98,7 +98,7 @@ impl Step for RustcDocs {
98
98
}
99
99
100
100
/// Builds the `rustc-docs` installer component.
101
- fn run(self, builder: &Builder<'_>) -> Option<PathBuf > {
101
+ fn run(self, builder: &Builder<'_>) -> Option<GeneratedTarball > {
102
102
let host = self.host;
103
103
if !builder.config.compiler_docs {
104
104
return None;
@@ -267,7 +267,7 @@ pub struct Mingw {
267
267
}
268
268
269
269
impl Step for Mingw {
270
- type Output = Option<PathBuf >;
270
+ type Output = Option<GeneratedTarball >;
271
271
const DEFAULT: bool = true;
272
272
273
273
fn should_run(run: ShouldRun<'_>) -> ShouldRun<'_> {
@@ -282,7 +282,7 @@ impl Step for Mingw {
282
282
///
283
283
/// This contains all the bits and pieces to run the MinGW Windows targets
284
284
/// without any extra installed software (e.g., we bundle gcc, libraries, etc).
285
- fn run(self, builder: &Builder<'_>) -> Option<PathBuf > {
285
+ fn run(self, builder: &Builder<'_>) -> Option<GeneratedTarball > {
286
286
let host = self.host;
287
287
if !host.contains("pc-windows-gnu") {
288
288
return None;
@@ -307,7 +307,7 @@ pub struct Rustc {
307
307
}
308
308
309
309
impl Step for Rustc {
310
- type Output = PathBuf ;
310
+ type Output = GeneratedTarball ;
311
311
const DEFAULT: bool = true;
312
312
const ONLY_HOSTS: bool = true;
313
313
@@ -321,7 +321,7 @@ impl Step for Rustc {
321
321
}
322
322
323
323
/// Creates the `rustc` installer component.
324
- fn run(self, builder: &Builder<'_>) -> PathBuf {
324
+ fn run(self, builder: &Builder<'_>) -> GeneratedTarball {
325
325
let compiler = self.compiler;
326
326
let host = self.compiler.host;
327
327
@@ -555,7 +555,7 @@ pub struct Std {
555
555
}
556
556
557
557
impl Step for Std {
558
- type Output = Option<PathBuf >;
558
+ type Output = Option<GeneratedTarball >;
559
559
const DEFAULT: bool = true;
560
560
561
561
fn should_run(run: ShouldRun<'_>) -> ShouldRun<'_> {
@@ -573,7 +573,7 @@ impl Step for Std {
573
573
});
574
574
}
575
575
576
- fn run(self, builder: &Builder<'_>) -> Option<PathBuf > {
576
+ fn run(self, builder: &Builder<'_>) -> Option<GeneratedTarball > {
577
577
let compiler = self.compiler;
578
578
let target = self.target;
579
579
@@ -601,7 +601,7 @@ pub struct RustcDev {
601
601
}
602
602
603
603
impl Step for RustcDev {
604
- type Output = Option<PathBuf >;
604
+ type Output = Option<GeneratedTarball >;
605
605
const DEFAULT: bool = true;
606
606
const ONLY_HOSTS: bool = true;
607
607
@@ -620,7 +620,7 @@ impl Step for RustcDev {
620
620
});
621
621
}
622
622
623
- fn run(self, builder: &Builder<'_>) -> Option<PathBuf > {
623
+ fn run(self, builder: &Builder<'_>) -> Option<GeneratedTarball > {
624
624
let compiler = self.compiler;
625
625
let target = self.target;
626
626
if skip_host_target_lib(builder, compiler) {
@@ -660,7 +660,7 @@ pub struct Analysis {
660
660
}
661
661
662
662
impl Step for Analysis {
663
- type Output = Option<PathBuf >;
663
+ type Output = Option<GeneratedTarball >;
664
664
const DEFAULT: bool = true;
665
665
666
666
fn should_run(run: ShouldRun<'_>) -> ShouldRun<'_> {
@@ -683,7 +683,7 @@ impl Step for Analysis {
683
683
}
684
684
685
685
/// Creates a tarball of save-analysis metadata, if available.
686
- fn run(self, builder: &Builder<'_>) -> Option<PathBuf > {
686
+ fn run(self, builder: &Builder<'_>) -> Option<GeneratedTarball > {
687
687
let compiler = self.compiler;
688
688
let target = self.target;
689
689
assert!(builder.config.extended);
@@ -796,7 +796,7 @@ pub struct Src;
796
796
797
797
impl Step for Src {
798
798
/// The output path of the src installer tarball
799
- type Output = PathBuf ;
799
+ type Output = GeneratedTarball ;
800
800
const DEFAULT: bool = true;
801
801
const ONLY_HOSTS: bool = true;
802
802
@@ -809,7 +809,7 @@ impl Step for Src {
809
809
}
810
810
811
811
/// Creates the `rust-src` installer component
812
- fn run(self, builder: &Builder<'_>) -> PathBuf {
812
+ fn run(self, builder: &Builder<'_>) -> GeneratedTarball {
813
813
let tarball = Tarball::new_targetless(builder, "rust-src");
814
814
815
815
// A lot of tools expect the rust-src component to be entirely in this directory, so if you
@@ -848,7 +848,7 @@ pub struct PlainSourceTarball;
848
848
849
849
impl Step for PlainSourceTarball {
850
850
/// Produces the location of the tarball generated
851
- type Output = PathBuf ;
851
+ type Output = GeneratedTarball ;
852
852
const DEFAULT: bool = true;
853
853
const ONLY_HOSTS: bool = true;
854
854
@@ -862,7 +862,7 @@ impl Step for PlainSourceTarball {
862
862
}
863
863
864
864
/// Creates the plain source tarball
865
- fn run(self, builder: &Builder<'_>) -> PathBuf {
865
+ fn run(self, builder: &Builder<'_>) -> GeneratedTarball {
866
866
let tarball = Tarball::new(builder, "rustc", "src");
867
867
let plain_dst_src = tarball.image_dir();
868
868
@@ -941,7 +941,7 @@ pub struct Cargo {
941
941
}
942
942
943
943
impl Step for Cargo {
944
- type Output = PathBuf ;
944
+ type Output = GeneratedTarball ;
945
945
const ONLY_HOSTS: bool = true;
946
946
947
947
fn should_run(run: ShouldRun<'_>) -> ShouldRun<'_> {
@@ -959,7 +959,7 @@ impl Step for Cargo {
959
959
});
960
960
}
961
961
962
- fn run(self, builder: &Builder<'_>) -> PathBuf {
962
+ fn run(self, builder: &Builder<'_>) -> GeneratedTarball {
963
963
let compiler = self.compiler;
964
964
let target = self.target;
965
965
@@ -995,7 +995,7 @@ pub struct Rls {
995
995
}
996
996
997
997
impl Step for Rls {
998
- type Output = Option<PathBuf >;
998
+ type Output = Option<GeneratedTarball >;
999
999
const ONLY_HOSTS: bool = true;
1000
1000
1001
1001
fn should_run(run: ShouldRun<'_>) -> ShouldRun<'_> {
@@ -1013,7 +1013,7 @@ impl Step for Rls {
1013
1013
});
1014
1014
}
1015
1015
1016
- fn run(self, builder: &Builder<'_>) -> Option<PathBuf > {
1016
+ fn run(self, builder: &Builder<'_>) -> Option<GeneratedTarball > {
1017
1017
let compiler = self.compiler;
1018
1018
let target = self.target;
1019
1019
assert!(builder.config.extended);
@@ -1041,7 +1041,7 @@ pub struct RustAnalyzer {
1041
1041
}
1042
1042
1043
1043
impl Step for RustAnalyzer {
1044
- type Output = Option<PathBuf >;
1044
+ type Output = Option<GeneratedTarball >;
1045
1045
const ONLY_HOSTS: bool = true;
1046
1046
1047
1047
fn should_run(run: ShouldRun<'_>) -> ShouldRun<'_> {
@@ -1059,7 +1059,7 @@ impl Step for RustAnalyzer {
1059
1059
});
1060
1060
}
1061
1061
1062
- fn run(self, builder: &Builder<'_>) -> Option<PathBuf > {
1062
+ fn run(self, builder: &Builder<'_>) -> Option<GeneratedTarball > {
1063
1063
let compiler = self.compiler;
1064
1064
let target = self.target;
1065
1065
assert!(builder.config.extended);
@@ -1090,7 +1090,7 @@ pub struct Clippy {
1090
1090
}
1091
1091
1092
1092
impl Step for Clippy {
1093
- type Output = PathBuf ;
1093
+ type Output = GeneratedTarball ;
1094
1094
const ONLY_HOSTS: bool = true;
1095
1095
1096
1096
fn should_run(run: ShouldRun<'_>) -> ShouldRun<'_> {
@@ -1108,7 +1108,7 @@ impl Step for Clippy {
1108
1108
});
1109
1109
}
1110
1110
1111
- fn run(self, builder: &Builder<'_>) -> PathBuf {
1111
+ fn run(self, builder: &Builder<'_>) -> GeneratedTarball {
1112
1112
let compiler = self.compiler;
1113
1113
let target = self.target;
1114
1114
assert!(builder.config.extended);
@@ -1140,7 +1140,7 @@ pub struct Miri {
1140
1140
}
1141
1141
1142
1142
impl Step for Miri {
1143
- type Output = Option<PathBuf >;
1143
+ type Output = Option<GeneratedTarball >;
1144
1144
const ONLY_HOSTS: bool = true;
1145
1145
1146
1146
fn should_run(run: ShouldRun<'_>) -> ShouldRun<'_> {
@@ -1158,7 +1158,7 @@ impl Step for Miri {
1158
1158
});
1159
1159
}
1160
1160
1161
- fn run(self, builder: &Builder<'_>) -> Option<PathBuf > {
1161
+ fn run(self, builder: &Builder<'_>) -> Option<GeneratedTarball > {
1162
1162
let compiler = self.compiler;
1163
1163
let target = self.target;
1164
1164
assert!(builder.config.extended);
@@ -1193,7 +1193,7 @@ pub struct Rustfmt {
1193
1193
}
1194
1194
1195
1195
impl Step for Rustfmt {
1196
- type Output = Option<PathBuf >;
1196
+ type Output = Option<GeneratedTarball >;
1197
1197
const ONLY_HOSTS: bool = true;
1198
1198
1199
1199
fn should_run(run: ShouldRun<'_>) -> ShouldRun<'_> {
@@ -1211,7 +1211,7 @@ impl Step for Rustfmt {
1211
1211
});
1212
1212
}
1213
1213
1214
- fn run(self, builder: &Builder<'_>) -> Option<PathBuf > {
1214
+ fn run(self, builder: &Builder<'_>) -> Option<GeneratedTarball > {
1215
1215
let compiler = self.compiler;
1216
1216
let target = self.target;
1217
1217
@@ -1316,11 +1316,11 @@ impl Step for Extended {
1316
1316
tarballs.push(mingw_installer.unwrap());
1317
1317
}
1318
1318
1319
- let mut tarball = Tarball::new(builder, "rust", &target.triple);
1320
- let work = tarball.persist_work_dir();
1321
- tarball.combine(&tarballs);
1319
+ let tarball = Tarball::new(builder, "rust", &target.triple);
1320
+ let generated = tarball.combine(&tarballs);
1322
1321
1323
1322
let tmp = tmpdir(builder).join("combined-tarball");
1323
+ let work = generated.work_dir();
1324
1324
1325
1325
let mut license = String::new();
1326
1326
license += &builder.read(&builder.src.join("COPYRIGHT"));
@@ -1870,7 +1870,7 @@ pub struct LlvmTools {
1870
1870
}
1871
1871
1872
1872
impl Step for LlvmTools {
1873
- type Output = Option<PathBuf >;
1873
+ type Output = Option<GeneratedTarball >;
1874
1874
const ONLY_HOSTS: bool = true;
1875
1875
1876
1876
fn should_run(run: ShouldRun<'_>) -> ShouldRun<'_> {
@@ -1881,7 +1881,7 @@ impl Step for LlvmTools {
1881
1881
run.builder.ensure(LlvmTools { target: run.target });
1882
1882
}
1883
1883
1884
- fn run(self, builder: &Builder<'_>) -> Option<PathBuf > {
1884
+ fn run(self, builder: &Builder<'_>) -> Option<GeneratedTarball > {
1885
1885
let target = self.target;
1886
1886
assert!(builder.config.extended);
1887
1887
@@ -1924,7 +1924,7 @@ pub struct RustDev {
1924
1924
}
1925
1925
1926
1926
impl Step for RustDev {
1927
- type Output = Option<PathBuf >;
1927
+ type Output = Option<GeneratedTarball >;
1928
1928
const DEFAULT: bool = true;
1929
1929
const ONLY_HOSTS: bool = true;
1930
1930
@@ -1936,7 +1936,7 @@ impl Step for RustDev {
1936
1936
run.builder.ensure(RustDev { target: run.target });
1937
1937
}
1938
1938
1939
- fn run(self, builder: &Builder<'_>) -> Option<PathBuf > {
1939
+ fn run(self, builder: &Builder<'_>) -> Option<GeneratedTarball > {
1940
1940
let target = self.target;
1941
1941
1942
1942
/* run only if llvm-config isn't used */
@@ -1989,7 +1989,7 @@ pub struct BuildManifest {
1989
1989
}
1990
1990
1991
1991
impl Step for BuildManifest {
1992
- type Output = PathBuf ;
1992
+ type Output = GeneratedTarball ;
1993
1993
const DEFAULT: bool = false;
1994
1994
const ONLY_HOSTS: bool = true;
1995
1995
@@ -2001,7 +2001,7 @@ impl Step for BuildManifest {
2001
2001
run.builder.ensure(BuildManifest { target: run.target });
2002
2002
}
2003
2003
2004
- fn run(self, builder: &Builder<'_>) -> PathBuf {
2004
+ fn run(self, builder: &Builder<'_>) -> GeneratedTarball {
2005
2005
let build_manifest = builder.tool_exe(Tool::BuildManifest);
2006
2006
2007
2007
let tarball = Tarball::new(builder, "build-manifest", &self.target.triple);
@@ -2021,7 +2021,7 @@ pub struct ReproducibleArtifacts {
2021
2021
}
2022
2022
2023
2023
impl Step for ReproducibleArtifacts {
2024
- type Output = Option<PathBuf >;
2024
+ type Output = Option<GeneratedTarball >;
2025
2025
const DEFAULT: bool = true;
2026
2026
const ONLY_HOSTS: bool = true;
2027
2027
0 commit comments