@@ -22,10 +22,10 @@ use channel::GitInfo;
22
22
use cache:: Interned ;
23
23
24
24
#[ derive( Debug , Copy , Clone , Hash , PartialEq , Eq ) ]
25
- pub struct CleanTools {
26
- pub stage : u32 ,
27
- pub target : Interned < String > ,
28
- pub mode : Mode ,
25
+ struct CleanTools {
26
+ compiler : Compiler ,
27
+ target : Interned < String > ,
28
+ mode : Mode ,
29
29
}
30
30
31
31
impl Step for CleanTools {
@@ -41,12 +41,10 @@ impl Step for CleanTools {
41
41
/// `stage` into the normal cargo output directory.
42
42
fn run ( self , builder : & Builder ) {
43
43
let build = builder. build ;
44
- let stage = self . stage ;
44
+ let compiler = self . compiler ;
45
45
let target = self . target ;
46
46
let mode = self . mode ;
47
47
48
- let compiler = builder. compiler ( stage, build. build ) ;
49
-
50
48
let stamp = match mode {
51
49
Mode :: Libstd => libstd_stamp ( build, compiler, target) ,
52
50
Mode :: Libtest => libtest_stamp ( build, compiler, target) ,
@@ -59,11 +57,11 @@ impl Step for CleanTools {
59
57
}
60
58
61
59
#[ derive( Debug , Copy , Clone , Hash , PartialEq , Eq ) ]
62
- pub struct ToolBuild {
63
- pub stage : u32 ,
64
- pub target : Interned < String > ,
65
- pub tool : & ' static str ,
66
- pub mode : Mode ,
60
+ struct ToolBuild {
61
+ compiler : Compiler ,
62
+ target : Interned < String > ,
63
+ tool : & ' static str ,
64
+ mode : Mode ,
67
65
}
68
66
69
67
impl Step for ToolBuild {
@@ -79,21 +77,20 @@ impl Step for ToolBuild {
79
77
/// `stage` into the normal cargo output directory.
80
78
fn run ( self , builder : & Builder ) -> PathBuf {
81
79
let build = builder. build ;
82
- let stage = self . stage ;
80
+ let compiler = self . compiler ;
83
81
let target = self . target ;
84
82
let tool = self . tool ;
85
83
86
- let compiler = builder. compiler ( stage, build. build ) ;
87
- builder. ensure ( CleanTools { stage, target, mode : self . mode } ) ;
84
+ builder. ensure ( CleanTools { compiler, target, mode : self . mode } ) ;
88
85
match self . mode {
89
86
Mode :: Libstd => builder. ensure ( compile:: Std { compiler, target } ) ,
90
87
Mode :: Libtest => builder. ensure ( compile:: Test { compiler, target } ) ,
91
88
Mode :: Librustc => builder. ensure ( compile:: Rustc { compiler, target } ) ,
92
89
Mode :: Tool => panic ! ( "unexpected Mode::Tool for tool build" )
93
90
}
94
91
95
- let _folder = build. fold_output ( || format ! ( "stage{}-{}" , stage, tool) ) ;
96
- println ! ( "Building stage{} tool {} ({})" , stage, tool, target) ;
92
+ let _folder = build. fold_output ( || format ! ( "stage{}-{}" , compiler . stage, tool) ) ;
93
+ println ! ( "Building stage{} tool {} ({})" , compiler . stage, tool, target) ;
97
94
98
95
let mut cargo = builder. cargo ( compiler, Mode :: Tool , target, "build" ) ;
99
96
let dir = build. src . join ( "src/tools" ) . join ( tool) ;
@@ -141,7 +138,7 @@ macro_rules! tool {
141
138
match tool {
142
139
$( Tool :: $name =>
143
140
self . ensure( $name {
144
- stage : 0 ,
141
+ compiler : self . compiler ( 0 , self . build . build ) ,
145
142
target: self . build. build,
146
143
} ) ,
147
144
) +
@@ -152,7 +149,7 @@ macro_rules! tool {
152
149
$(
153
150
#[ derive( Debug , Copy , Clone , Hash , PartialEq , Eq ) ]
154
151
pub struct $name {
155
- pub stage : u32 ,
152
+ pub compiler : Compiler ,
156
153
pub target: Interned <String >,
157
154
}
158
155
@@ -165,14 +162,14 @@ macro_rules! tool {
165
162
166
163
fn make_run( run: RunConfig ) {
167
164
run. builder. ensure( $name {
168
- stage : run. builder. top_stage,
165
+ compiler : run. builder. compiler ( run . builder . top_stage, run . builder . build . build ) ,
169
166
target: run. target,
170
167
} ) ;
171
168
}
172
169
173
170
fn run( self , builder: & Builder ) -> PathBuf {
174
171
builder. ensure( ToolBuild {
175
- stage : self . stage ,
172
+ compiler : self . compiler ,
176
173
target: self . target,
177
174
tool: $tool_name,
178
175
mode: $mode,
@@ -198,7 +195,7 @@ tool!(
198
195
199
196
#[ derive( Debug , Copy , Clone , Hash , PartialEq , Eq ) ]
200
197
pub struct RemoteTestServer {
201
- pub stage : u32 ,
198
+ pub compiler : Compiler ,
202
199
pub target : Interned < String > ,
203
200
}
204
201
@@ -211,14 +208,14 @@ impl Step for RemoteTestServer {
211
208
212
209
fn make_run ( run : RunConfig ) {
213
210
run. builder . ensure ( RemoteTestServer {
214
- stage : run. builder . top_stage ,
211
+ compiler : run. builder . compiler ( run . builder . top_stage , run . builder . build . build ) ,
215
212
target : run. target ,
216
213
} ) ;
217
214
}
218
215
219
216
fn run ( self , builder : & Builder ) -> PathBuf {
220
217
builder. ensure ( ToolBuild {
221
- stage : self . stage ,
218
+ compiler : self . compiler ,
222
219
target : self . target ,
223
220
tool : "remote-test-server" ,
224
221
mode : Mode :: Libstd ,
@@ -228,7 +225,7 @@ impl Step for RemoteTestServer {
228
225
229
226
#[ derive( Debug , Copy , Clone , Hash , PartialEq , Eq ) ]
230
227
pub struct Cargo {
231
- pub stage : u32 ,
228
+ pub compiler : Compiler ,
232
229
pub target : Interned < String > ,
233
230
}
234
231
@@ -244,7 +241,7 @@ impl Step for Cargo {
244
241
245
242
fn make_run ( run : RunConfig ) {
246
243
run. builder . ensure ( Cargo {
247
- stage : run. builder . top_stage ,
244
+ compiler : run. builder . compiler ( run . builder . top_stage , run . builder . build . build ) ,
248
245
target : run. target ,
249
246
} ) ;
250
247
}
@@ -256,11 +253,11 @@ impl Step for Cargo {
256
253
// Cargo depends on procedural macros, which requires a full host
257
254
// compiler to be available, so we need to depend on that.
258
255
builder. ensure ( compile:: Rustc {
259
- compiler : builder . compiler ( self . stage , builder . build . build ) ,
256
+ compiler : self . compiler ,
260
257
target : builder. build . build ,
261
258
} ) ;
262
259
builder. ensure ( ToolBuild {
263
- stage : self . stage ,
260
+ compiler : self . compiler ,
264
261
target : self . target ,
265
262
tool : "cargo" ,
266
263
mode : Mode :: Librustc ,
@@ -270,7 +267,7 @@ impl Step for Cargo {
270
267
271
268
#[ derive( Debug , Copy , Clone , Hash , PartialEq , Eq ) ]
272
269
pub struct Rls {
273
- pub stage : u32 ,
270
+ pub compiler : Compiler ,
274
271
pub target : Interned < String > ,
275
272
}
276
273
@@ -286,7 +283,7 @@ impl Step for Rls {
286
283
287
284
fn make_run ( run : RunConfig ) {
288
285
run. builder . ensure ( Rls {
289
- stage : run. builder . top_stage ,
286
+ compiler : run. builder . compiler ( run . builder . top_stage , run . builder . build . build ) ,
290
287
target : run. target ,
291
288
} ) ;
292
289
}
@@ -298,11 +295,11 @@ impl Step for Rls {
298
295
// RLS depends on procedural macros, which requires a full host
299
296
// compiler to be available, so we need to depend on that.
300
297
builder. ensure ( compile:: Rustc {
301
- compiler : builder . compiler ( self . stage , builder . build . build ) ,
298
+ compiler : self . compiler ,
302
299
target : builder. build . build ,
303
300
} ) ;
304
301
builder. ensure ( ToolBuild {
305
- stage : self . stage ,
302
+ compiler : self . compiler ,
306
303
target : self . target ,
307
304
tool : "rls" ,
308
305
mode : Mode :: Librustc ,
0 commit comments