diff --git a/src/bootstrap/bootstrap.py b/src/bootstrap/bootstrap.py index 17a7c9ca66a2..3f4a18ab1247 100644 --- a/src/bootstrap/bootstrap.py +++ b/src/bootstrap/bootstrap.py @@ -236,6 +236,15 @@ class RustBuild: return config + '/bin/rustc' + self.exe_suffix() return os.path.join(self.bin_root(), "bin/rustc" + self.exe_suffix()) + def nodejs(self): + config = self.get_toml('nodejs') + if config: + return config + if os.path.exists(os.path.join(self.bin_root(), "bin/nodejs")): + return os.path.join(self.bin_root(), "bin/nodejs" + self.exe_suffix()) + elif os.path.exists(os.path.join(self.bin_root(), "bin/node")): + return os.path.join(self.bin_root(), "bin/node" + self.exe_suffix()) + def get_string(self, line): start = line.find('"') end = start + 1 + line[start+1:].find('"') diff --git a/src/bootstrap/config.rs b/src/bootstrap/config.rs index 682a6f74126a..5a7ae4f6973d 100644 --- a/src/bootstrap/config.rs +++ b/src/bootstrap/config.rs @@ -67,6 +67,7 @@ pub struct Config { pub target: Vec, pub rustc: Option, pub cargo: Option, + pub nodejs: Option, pub local_rebuild: bool, // libstd features @@ -111,6 +112,7 @@ struct Build { host: Vec, target: Vec, cargo: Option, + nodejs: Option, rustc: Option, compiler_docs: Option, docs: Option, @@ -215,6 +217,7 @@ impl Config { } config.rustc = build.rustc.map(PathBuf::from); config.cargo = build.cargo.map(PathBuf::from); + config.nodejs = build.nodejs.map(PathBuf::from); set(&mut config.compiler_docs, build.compiler_docs); set(&mut config.docs, build.docs);