Skip to content

Commit 64a2abc

Browse files
committed
Revert "Rollup merge of rust-lang#95503 - jyn514:build-single-crate, r=Mark-Simulacrum"
This reverts commit 0a7f2c3, reversing changes made to 41ad4d9.
1 parent e78e747 commit 64a2abc

File tree

9 files changed

+182
-226
lines changed

9 files changed

+182
-226
lines changed

src/bootstrap/builder.rs

Lines changed: 6 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ use std::process::{Command, Stdio};
1313
use std::time::{Duration, Instant};
1414

1515
use crate::cache::{Cache, Interned, INTERNER};
16+
use crate::compile;
1617
use crate::config::{SplitDebuginfo, TargetSelection};
1718
use crate::dist;
1819
use crate::doc;
@@ -25,7 +26,6 @@ use crate::tool::{self, SourceType};
2526
use crate::util::{self, add_dylib_path, add_link_lib_path, exe, libdir, output, t};
2627
use crate::EXTRA_CHECK_CFGS;
2728
use crate::{check, Config};
28-
use crate::{compile, Crate};
2929
use crate::{Build, CLang, DocTests, GitRepo, Mode};
3030

3131
pub use crate::Compiler;
@@ -304,7 +304,9 @@ impl StepDescription {
304304
if paths.is_empty() || builder.config.include_default_paths {
305305
for (desc, should_run) in v.iter().zip(&should_runs) {
306306
if desc.default && should_run.is_really_default() {
307-
desc.maybe_run(builder, should_run.paths.iter().cloned().collect());
307+
for pathset in &should_run.paths {
308+
desc.maybe_run(builder, vec![pathset.clone()]);
309+
}
308310
}
309311
}
310312
}
@@ -422,16 +424,8 @@ impl<'a> ShouldRun<'a> {
422424
/// any of its (local) dependencies.
423425
///
424426
/// `make_run` will be called a single time with all matching command-line paths.
425-
pub fn crate_or_deps(self, name: &str) -> Self {
426-
let crates = self.builder.in_tree_crates(name, None);
427-
self.crates(crates)
428-
}
429-
430-
/// Indicates it should run if the command-line selects any of the given crates.
431-
///
432-
/// `make_run` will be called a single time with all matching command-line paths.
433-
pub(crate) fn crates(mut self, crates: Vec<&Crate>) -> Self {
434-
for krate in crates {
427+
pub fn krate(mut self, name: &str) -> Self {
428+
for krate in self.builder.in_tree_crates(name, None) {
435429
let path = krate.local_path(self.builder);
436430
self.paths.insert(PathSet::one(path, self.kind));
437431
}
@@ -587,7 +581,6 @@ impl<'a> Builder<'a> {
587581
match kind {
588582
Kind::Build => describe!(
589583
compile::Std,
590-
compile::Rustc,
591584
compile::Assemble,
592585
compile::CodegenBackend,
593586
compile::StartupObjects,

src/bootstrap/builder/tests.rs

Lines changed: 62 additions & 63 deletions
Original file line numberDiff line numberDiff line change
@@ -57,24 +57,6 @@ fn check_cli<const N: usize>(paths: [&str; N]) {
5757
);
5858
}
5959

60-
macro_rules! std {
61-
($host:ident => $target:ident, stage = $stage:literal) => {
62-
compile::Std::new(
63-
Compiler { host: TargetSelection::from_user(stringify!($host)), stage: $stage },
64-
TargetSelection::from_user(stringify!($target)),
65-
)
66-
};
67-
}
68-
69-
macro_rules! rustc {
70-
($host:ident => $target:ident, stage = $stage:literal) => {
71-
compile::Rustc::new(
72-
Compiler { host: TargetSelection::from_user(stringify!($host)), stage: $stage },
73-
TargetSelection::from_user(stringify!($target)),
74-
)
75-
};
76-
}
77-
7860
#[test]
7961
fn test_valid() {
8062
// make sure multi suite paths are accepted
@@ -135,17 +117,6 @@ fn test_exclude_kind() {
135117
assert!(run_build(&[path], config).contains::<tool::CargoTest>());
136118
}
137119

138-
/// Ensure that if someone passes both a single crate and `library`, all library crates get built.
139-
#[test]
140-
fn alias_and_path_for_library() {
141-
let mut cache =
142-
run_build(&["library".into(), "core".into()], configure("build", &["A"], &["A"]));
143-
assert_eq!(
144-
first(cache.all::<compile::Std>()),
145-
&[std!(A => A, stage = 0), std!(A => A, stage = 1)]
146-
);
147-
}
148-
149120
mod defaults {
150121
use super::{configure, first, run_build};
151122
use crate::builder::*;
@@ -159,7 +130,10 @@ mod defaults {
159130
let a = TargetSelection::from_user("A");
160131
assert_eq!(
161132
first(cache.all::<compile::Std>()),
162-
&[std!(A => A, stage = 0), std!(A => A, stage = 1),]
133+
&[
134+
compile::Std { compiler: Compiler { host: a, stage: 0 }, target: a },
135+
compile::Std { compiler: Compiler { host: a, stage: 1 }, target: a },
136+
]
163137
);
164138
assert!(!cache.all::<compile::Assemble>().is_empty());
165139
// Make sure rustdoc is only built once.
@@ -169,7 +143,10 @@ mod defaults {
169143
// - this is the compiler it's _linked_ to, not built with.
170144
&[tool::Rustdoc { compiler: Compiler { host: a, stage: 1 } }],
171145
);
172-
assert_eq!(first(cache.all::<compile::Rustc>()), &[rustc!(A => A, stage = 0)],);
146+
assert_eq!(
147+
first(cache.all::<compile::Rustc>()),
148+
&[compile::Rustc { compiler: Compiler { host: a, stage: 0 }, target: a },]
149+
);
173150
}
174151

175152
#[test]
@@ -178,7 +155,10 @@ mod defaults {
178155
let mut cache = run_build(&[], config);
179156

180157
let a = TargetSelection::from_user("A");
181-
assert_eq!(first(cache.all::<compile::Std>()), &[std!(A => A, stage = 0)]);
158+
assert_eq!(
159+
first(cache.all::<compile::Std>()),
160+
&[compile::Std { compiler: Compiler { host: a, stage: 0 }, target: a },]
161+
);
182162
assert!(!cache.all::<compile::Assemble>().is_empty());
183163
assert_eq!(
184164
first(cache.all::<tool::Rustdoc>()),
@@ -205,10 +185,10 @@ mod defaults {
205185
assert_eq!(
206186
first(cache.all::<compile::Std>()),
207187
&[
208-
std!(A => A, stage = 0),
209-
std!(A => A, stage = 1),
210-
std!(A => B, stage = 0),
211-
std!(A => B, stage = 1),
188+
compile::Std { compiler: Compiler { host: a, stage: 0 }, target: a },
189+
compile::Std { compiler: Compiler { host: a, stage: 1 }, target: a },
190+
compile::Std { compiler: Compiler { host: a, stage: 0 }, target: b },
191+
compile::Std { compiler: Compiler { host: a, stage: 1 }, target: b },
212192
]
213193
);
214194
assert_eq!(
@@ -228,7 +208,10 @@ mod defaults {
228208
);
229209
assert_eq!(
230210
first(cache.all::<compile::Rustc>()),
231-
&[rustc!(A => A, stage = 0), rustc!(A => B, stage = 0),]
211+
&[
212+
compile::Rustc { compiler: Compiler { host: a, stage: 0 }, target: a },
213+
compile::Rustc { compiler: Compiler { host: a, stage: 0 }, target: b },
214+
]
232215
);
233216
}
234217

@@ -351,18 +334,19 @@ mod dist {
351334
assert_eq!(
352335
first(cache.all::<compile::Std>()),
353336
&[
354-
std!(A => A, stage = 0),
355-
std!(A => A, stage = 1),
356-
std!(A => A, stage = 2),
357-
std!(A => B, stage = 1),
358-
std!(A => B, stage = 2),
337+
compile::Std { compiler: Compiler { host: a, stage: 0 }, target: a },
338+
compile::Std { compiler: Compiler { host: a, stage: 1 }, target: a },
339+
compile::Std { compiler: Compiler { host: a, stage: 2 }, target: a },
340+
compile::Std { compiler: Compiler { host: a, stage: 1 }, target: b },
341+
compile::Std { compiler: Compiler { host: a, stage: 2 }, target: b },
359342
],
360343
);
361344
assert_eq!(first(cache.all::<dist::Src>()), &[dist::Src]);
362345
}
363346

364347
#[test]
365348
fn dist_only_cross_host() {
349+
let a = TargetSelection::from_user("A");
366350
let b = TargetSelection::from_user("B");
367351
let mut config = configure(&["A", "B"], &["A", "B"]);
368352
config.docs = false;
@@ -376,7 +360,10 @@ mod dist {
376360
);
377361
assert_eq!(
378362
first(cache.all::<compile::Rustc>()),
379-
&[rustc!(A => A, stage = 0), rustc!(A => B, stage = 1),]
363+
&[
364+
compile::Rustc { compiler: Compiler { host: a, stage: 0 }, target: a },
365+
compile::Rustc { compiler: Compiler { host: a, stage: 1 }, target: b },
366+
]
380367
);
381368
}
382369

@@ -463,11 +450,11 @@ mod dist {
463450
assert_eq!(
464451
first(cache.all::<compile::Std>()),
465452
&[
466-
std!(A => A, stage = 0),
467-
std!(A => A, stage = 1),
468-
std!(A => A, stage = 2),
469-
std!(A => B, stage = 1),
470-
std!(A => B, stage = 2),
453+
compile::Std { compiler: Compiler { host: a, stage: 0 }, target: a },
454+
compile::Std { compiler: Compiler { host: a, stage: 1 }, target: a },
455+
compile::Std { compiler: Compiler { host: a, stage: 2 }, target: a },
456+
compile::Std { compiler: Compiler { host: a, stage: 1 }, target: b },
457+
compile::Std { compiler: Compiler { host: a, stage: 2 }, target: b },
471458
]
472459
);
473460
assert_eq!(
@@ -487,29 +474,33 @@ mod dist {
487474
let mut builder = Builder::new(&build);
488475
builder.run_step_descriptions(
489476
&Builder::get_step_descriptions(Kind::Build),
490-
&["compiler/rustc".into(), "library".into()],
477+
&["compiler/rustc".into(), "library/std".into()],
491478
);
492479

480+
let a = TargetSelection::from_user("A");
481+
let b = TargetSelection::from_user("B");
482+
let c = TargetSelection::from_user("C");
483+
493484
assert_eq!(
494485
first(builder.cache.all::<compile::Std>()),
495486
&[
496-
std!(A => A, stage = 0),
497-
std!(A => A, stage = 1),
498-
std!(A => A, stage = 2),
499-
std!(A => B, stage = 1),
500-
std!(A => B, stage = 2),
501-
std!(A => C, stage = 2),
487+
compile::Std { compiler: Compiler { host: a, stage: 0 }, target: a },
488+
compile::Std { compiler: Compiler { host: a, stage: 1 }, target: a },
489+
compile::Std { compiler: Compiler { host: a, stage: 2 }, target: a },
490+
compile::Std { compiler: Compiler { host: a, stage: 1 }, target: b },
491+
compile::Std { compiler: Compiler { host: a, stage: 2 }, target: b },
492+
compile::Std { compiler: Compiler { host: a, stage: 2 }, target: c },
502493
]
503494
);
504-
assert_eq!(builder.cache.all::<compile::Assemble>().len(), 5);
495+
assert!(!builder.cache.all::<compile::Assemble>().is_empty());
505496
assert_eq!(
506497
first(builder.cache.all::<compile::Rustc>()),
507498
&[
508-
rustc!(A => A, stage = 0),
509-
rustc!(A => A, stage = 1),
510-
rustc!(A => A, stage = 2),
511-
rustc!(A => B, stage = 1),
512-
rustc!(A => B, stage = 2),
499+
compile::Rustc { compiler: Compiler { host: a, stage: 0 }, target: a },
500+
compile::Rustc { compiler: Compiler { host: a, stage: 1 }, target: a },
501+
compile::Rustc { compiler: Compiler { host: a, stage: 2 }, target: a },
502+
compile::Rustc { compiler: Compiler { host: a, stage: 1 }, target: b },
503+
compile::Rustc { compiler: Compiler { host: a, stage: 2 }, target: b },
513504
]
514505
);
515506
}
@@ -522,10 +513,15 @@ mod dist {
522513
builder.run_step_descriptions(&Builder::get_step_descriptions(Kind::Build), &[]);
523514

524515
let a = TargetSelection::from_user("A");
516+
let c = TargetSelection::from_user("C");
525517

526518
assert_eq!(
527519
first(builder.cache.all::<compile::Std>()),
528-
&[std!(A => A, stage = 0), std!(A => A, stage = 1), std!(A => C, stage = 2),]
520+
&[
521+
compile::Std { compiler: Compiler { host: a, stage: 0 }, target: a },
522+
compile::Std { compiler: Compiler { host: a, stage: 1 }, target: a },
523+
compile::Std { compiler: Compiler { host: a, stage: 2 }, target: c },
524+
]
529525
);
530526
assert_eq!(
531527
first(builder.cache.all::<compile::Assemble>()),
@@ -537,7 +533,10 @@ mod dist {
537533
);
538534
assert_eq!(
539535
first(builder.cache.all::<compile::Rustc>()),
540-
&[rustc!(A => A, stage = 0), rustc!(A => A, stage = 1),]
536+
&[
537+
compile::Rustc { compiler: Compiler { host: a, stage: 0 }, target: a },
538+
compile::Rustc { compiler: Compiler { host: a, stage: 1 }, target: a },
539+
]
541540
);
542541
}
543542

0 commit comments

Comments
 (0)