Skip to content

Commit 95467d3

Browse files
committed
Auto merge of #41577 - Keruspe:master, r=alexcrichton
rustbuild improvements Properly hook up cargo and rls in the build phase, and install them, when extended build is enabled.
2 parents 810ed98 + a8c6ba9 commit 95467d3

File tree

3 files changed

+24
-8
lines changed

3 files changed

+24
-8
lines changed

src/bootstrap/install.rs

+16-8
Original file line numberDiff line numberDiff line change
@@ -46,24 +46,32 @@ pub fn install(build: &Build, stage: u32, host: &str) {
4646
let empty_dir = build.out.join("tmp/empty_dir");
4747
t!(fs::create_dir_all(&empty_dir));
4848
if build.config.docs {
49-
install_sh(&build, "docs", "rust-docs", stage, host, &prefix,
50-
&docdir, &libdir, &mandir, &empty_dir);
49+
install_sh(&build, "docs", "rust-docs", &build.rust_package_vers(),
50+
stage, host, &prefix, &docdir, &libdir, &mandir, &empty_dir);
5151
}
5252

5353
for target in build.config.target.iter() {
54-
install_sh(&build, "std", "rust-std", stage, target, &prefix,
55-
&docdir, &libdir, &mandir, &empty_dir);
54+
install_sh(&build, "std", "rust-std", &build.rust_package_vers(),
55+
stage, target, &prefix, &docdir, &libdir, &mandir, &empty_dir);
5656
}
5757

58-
install_sh(&build, "rustc", "rustc", stage, host, &prefix,
59-
&docdir, &libdir, &mandir, &empty_dir);
58+
if build.config.extended {
59+
install_sh(&build, "cargo", "cargo", &build.cargo_package_vers(),
60+
stage, host, &prefix, &docdir, &libdir, &mandir, &empty_dir);
61+
install_sh(&build, "rls", "rls", &build.rls_package_vers(),
62+
stage, host, &prefix, &docdir, &libdir, &mandir, &empty_dir);
63+
}
64+
65+
install_sh(&build, "rustc", "rustc", &build.rust_package_vers(),
66+
stage, host, &prefix, &docdir, &libdir, &mandir, &empty_dir);
67+
6068
t!(fs::remove_dir_all(&empty_dir));
6169
}
6270

63-
fn install_sh(build: &Build, package: &str, name: &str, stage: u32, host: &str,
71+
fn install_sh(build: &Build, package: &str, name: &str, version: &str, stage: u32, host: &str,
6472
prefix: &Path, docdir: &Path, libdir: &Path, mandir: &Path, empty_dir: &Path) {
6573
println!("Install {} stage{} ({})", package, stage, host);
66-
let package_name = format!("{}-{}-{}", name, build.rust_package_vers(), host);
74+
let package_name = format!("{}-{}-{}", name, version, host);
6775

6876
let mut cmd = Command::new("sh");
6977
cmd.current_dir(empty_dir)

src/bootstrap/lib.rs

+5
Original file line numberDiff line numberDiff line change
@@ -1054,6 +1054,11 @@ impl Build {
10541054
self.package_vers(&self.release_num("cargo"))
10551055
}
10561056

1057+
/// Returns the value of `package_vers` above for rls
1058+
fn rls_package_vers(&self) -> String {
1059+
self.package_vers(&self.release_num("rls"))
1060+
}
1061+
10571062
/// Returns the `version` string associated with this compiler for Rust
10581063
/// itself.
10591064
///

src/bootstrap/step.rs

+3
Original file line numberDiff line numberDiff line change
@@ -575,6 +575,8 @@ pub fn build_rules<'a>(build: &'a Build) -> Rules {
575575
.dep(|s| s.name("libstd-tool"))
576576
.run(move |s| compile::tool(build, s.stage, s.target, "remote-test-client"));
577577
rules.build("tool-cargo", "cargo")
578+
.host(true)
579+
.default(build.config.extended)
578580
.dep(|s| s.name("maybe-clean-tools"))
579581
.dep(|s| s.name("libstd-tool"))
580582
.dep(|s| s.stage(0).host(s.target).name("openssl"))
@@ -588,6 +590,7 @@ pub fn build_rules<'a>(build: &'a Build) -> Rules {
588590
.run(move |s| compile::tool(build, s.stage, s.target, "cargo"));
589591
rules.build("tool-rls", "rls")
590592
.host(true)
593+
.default(build.config.extended)
591594
.dep(|s| s.name("librustc-tool"))
592595
.dep(|s| s.stage(0).host(s.target).name("openssl"))
593596
.dep(move |s| {

0 commit comments

Comments
 (0)