about summary refs log tree commit diff
path: root/src/bootstrap
diff options
context:
space:
mode:
authorAlex Crichton <alex@alexcrichton.com>2016-05-23 13:49:37 -0700
committerAlex Crichton <alex@alexcrichton.com>2016-05-23 22:57:33 -0700
commit09859692ffcf09a9c1e302adcb97f6dc0fb680dc (patch)
treeb98791b28131ebae4da5954e09d6650f97e37bce /src/bootstrap
parentdd6e8d45e183861d44ed91a99f0a50403b2776a3 (diff)
downloadrust-09859692ffcf09a9c1e302adcb97f6dc0fb680dc.tar.gz
rust-09859692ffcf09a9c1e302adcb97f6dc0fb680dc.zip
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.
Diffstat (limited to 'src/bootstrap')
-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"));
+                }
                 _ => {}
             }
         }