]> git.lizzy.rs Git - rust.git/commitdiff
Auto merge of #41577 - Keruspe:master, r=alexcrichton
authorbors <bors@rust-lang.org>
Sat, 29 Apr 2017 03:56:09 +0000 (03:56 +0000)
committerbors <bors@rust-lang.org>
Sat, 29 Apr 2017 03:56:09 +0000 (03:56 +0000)
rustbuild improvements

Properly hook up cargo and rls in the build phase, and install them, when extended build is enabled.

src/bootstrap/install.rs
src/bootstrap/lib.rs
src/bootstrap/step.rs

index d508616e4b1cc2e6caf285737c09137305f1e894..c805522fbf588d06b4676bb8bd0647fa2c1aea54 100644 (file)
@@ -46,24 +46,32 @@ pub fn install(build: &Build, stage: u32, host: &str) {
     let empty_dir = build.out.join("tmp/empty_dir");
     t!(fs::create_dir_all(&empty_dir));
     if build.config.docs {
-        install_sh(&build, "docs", "rust-docs", stage, host, &prefix,
-                   &docdir, &libdir, &mandir, &empty_dir);
+        install_sh(&build, "docs", "rust-docs", &build.rust_package_vers(),
+                   stage, host, &prefix, &docdir, &libdir, &mandir, &empty_dir);
     }
 
     for target in build.config.target.iter() {
-        install_sh(&build, "std", "rust-std", stage, target, &prefix,
-                   &docdir, &libdir, &mandir, &empty_dir);
+        install_sh(&build, "std", "rust-std", &build.rust_package_vers(),
+                   stage, target, &prefix, &docdir, &libdir, &mandir, &empty_dir);
     }
 
-    install_sh(&build, "rustc", "rustc", stage, host, &prefix,
-               &docdir, &libdir, &mandir, &empty_dir);
+    if build.config.extended {
+        install_sh(&build, "cargo", "cargo", &build.cargo_package_vers(),
+                   stage, host, &prefix, &docdir, &libdir, &mandir, &empty_dir);
+        install_sh(&build, "rls", "rls", &build.rls_package_vers(),
+                   stage, host, &prefix, &docdir, &libdir, &mandir, &empty_dir);
+    }
+
+    install_sh(&build, "rustc", "rustc", &build.rust_package_vers(),
+               stage, host, &prefix, &docdir, &libdir, &mandir, &empty_dir);
+
     t!(fs::remove_dir_all(&empty_dir));
 }
 
-fn install_sh(build: &Build, package: &str, name: &str, stage: u32, host: &str,
+fn install_sh(build: &Build, package: &str, name: &str, version: &str, stage: u32, host: &str,
               prefix: &Path, docdir: &Path, libdir: &Path, mandir: &Path, empty_dir: &Path) {
     println!("Install {} stage{} ({})", package, stage, host);
-    let package_name = format!("{}-{}-{}", name, build.rust_package_vers(), host);
+    let package_name = format!("{}-{}-{}", name, version, host);
 
     let mut cmd = Command::new("sh");
     cmd.current_dir(empty_dir)
index 74c58844741c7dcd89d4ad60f297f70cda9f258d..2852421ad287f425c9e9603a7278f6e3b5507c6f 100644 (file)
@@ -1054,6 +1054,11 @@ fn cargo_package_vers(&self) -> String {
         self.package_vers(&self.release_num("cargo"))
     }
 
+    /// Returns the value of `package_vers` above for rls
+    fn rls_package_vers(&self) -> String {
+        self.package_vers(&self.release_num("rls"))
+    }
+
     /// Returns the `version` string associated with this compiler for Rust
     /// itself.
     ///
index a4d6f91fbef7577c389124ab0759ba64432fb392..c15e889394f07dca5040b159dfb37db24b208cbe 100644 (file)
@@ -575,6 +575,8 @@ fn crate_rule<'a, 'b>(build: &'a Build,
          .dep(|s| s.name("libstd-tool"))
          .run(move |s| compile::tool(build, s.stage, s.target, "remote-test-client"));
     rules.build("tool-cargo", "cargo")
+         .host(true)
+         .default(build.config.extended)
          .dep(|s| s.name("maybe-clean-tools"))
          .dep(|s| s.name("libstd-tool"))
          .dep(|s| s.stage(0).host(s.target).name("openssl"))
@@ -588,6 +590,7 @@ fn crate_rule<'a, 'b>(build: &'a Build,
          .run(move |s| compile::tool(build, s.stage, s.target, "cargo"));
     rules.build("tool-rls", "rls")
          .host(true)
+         .default(build.config.extended)
          .dep(|s| s.name("librustc-tool"))
          .dep(|s| s.stage(0).host(s.target).name("openssl"))
          .dep(move |s| {