about summary refs log tree commit diff
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2016-05-28 13:24:51 -0700
committerbors <bors@rust-lang.org>2016-05-28 13:24:51 -0700
commit90d9a515af7b80ab99d77cf8b3fa29d0272e2b3c (patch)
treef5d13db4c941b6f2daa1033c8f390af25463af6b
parent623af22b9af0c31d9797211dca7399418b52ba61 (diff)
parent09859692ffcf09a9c1e302adcb97f6dc0fb680dc (diff)
downloadrust-90d9a515af7b80ab99d77cf8b3fa29d0272e2b3c.tar.gz
rust-90d9a515af7b80ab99d77cf8b3fa29d0272e2b3c.zip
Auto merge of #33824 - alexcrichton:rustbuild-fix-local-rust, r=nikomatsakis
rustbuild: Add support for --enable-local-rust

This commit adds support for the `--enable-local-rust` `./configure` switch
which uses the locally installed `rustc` to bootstrap the compiler.
-rw-r--r--src/bootstrap/build/config.rs12
1 files changed, 8 insertions, 4 deletions
diff --git a/src/bootstrap/build/config.rs b/src/bootstrap/build/config.rs
index fb1ad12d914..e155bf356a0 100644
--- a/src/bootstrap/build/config.rs
+++ b/src/bootstrap/build/config.rs
@@ -65,8 +65,8 @@ pub struct Config {
     pub build: String,
     pub host: Vec<String>,
     pub target: Vec<String>,
-    pub rustc: Option<String>,
-    pub cargo: Option<String>,
+    pub rustc: Option<PathBuf>,
+    pub cargo: Option<PathBuf>,
     pub local_rebuild: bool,
 
     // libstd features
@@ -208,8 +208,8 @@ impl Config {
                 config.target.push(target.clone());
             }
         }
-        config.rustc = build.rustc;
-        config.cargo = build.cargo;
+        config.rustc = build.rustc.map(PathBuf::from);
+        config.cargo = build.cargo.map(PathBuf::from);
         set(&mut config.compiler_docs, build.compiler_docs);
         set(&mut config.docs, build.docs);
 
@@ -379,6 +379,10 @@ impl Config {
                                      .or_insert(Target::default());
                     target.ndk = Some(PathBuf::from(value));
                 }
+                "CFG_LOCAL_RUST_ROOT" if value.len() > 0 => {
+                    self.rustc = Some(PathBuf::from(value).join("bin/rustc"));
+                    self.cargo = Some(PathBuf::from(value).join("bin/cargo"));
+                }
                 _ => {}
             }
         }