Skip to content

Commit

Permalink
Move nodejs detection into bootstrap
Browse files Browse the repository at this point in the history
This avoids issues with mingw path conversions.
  • Loading branch information
brson committed Sep 28, 2016
1 parent c772948 commit 27588dd
Show file tree
Hide file tree
Showing 3 changed files with 19 additions and 15 deletions.
4 changes: 0 additions & 4 deletions configure
Original file line number Diff line number Diff line change
Expand Up @@ -637,7 +637,6 @@ valopt datadir "${CFG_PREFIX}/share" "install data"
valopt infodir "${CFG_PREFIX}/share/info" "install additional info"
valopt llvm-root "" "set LLVM root"
valopt python "" "set path to python"
valopt nodejs "" "set path to nodejs"
valopt jemalloc-root "" "set directory where libjemalloc_pic.a is located"
valopt build "${DEFAULT_BUILD}" "GNUs ./configure syntax LLVM build triple"
valopt android-cross-path "" "Android NDK standalone path (deprecated)"
Expand Down Expand Up @@ -754,9 +753,6 @@ if [ $(echo $python_version | grep -c '^Python 2\.7') -ne 1 ]; then
err "Found $python_version, but Python 2.7 is required"
fi

# Checking for node, but not required
probe CFG_NODEJS nodejs node

# If we have no git directory then we are probably a tarball distribution
# and shouldn't attempt to load submodules
if [ ! -e ${CFG_SRC_DIR}.git ]
Expand Down
3 changes: 0 additions & 3 deletions src/bootstrap/config.rs
Original file line number Diff line number Diff line change
Expand Up @@ -396,9 +396,6 @@ impl Config {
self.rustc = Some(PathBuf::from(value).join("bin/rustc"));
self.cargo = Some(PathBuf::from(value).join("bin/cargo"));
}
"CFG_NODEJS" if value.len() > 0 => {
self.nodejs = Some(PathBuf::from(value));
}
_ => {}
}
}
Expand Down
27 changes: 19 additions & 8 deletions src/bootstrap/sanity.rs
Original file line number Diff line number Diff line change
Expand Up @@ -40,17 +40,23 @@ pub fn check(build: &mut Build) {
panic!("PATH contains invalid character '\"'");
}
}
let mut need_cmd = |cmd: &OsStr| {
if !checked.insert(cmd.to_owned()) {
return
}
let have_cmd = |cmd: &OsStr| {
for path in env::split_paths(&path).map(|p| p.join(cmd)) {
if fs::metadata(&path).is_ok() ||
fs::metadata(path.with_extension("exe")).is_ok() {
return
return Some(path);
}
}
panic!("\n\ncouldn't find required command: {:?}\n\n", cmd);
return None;
};

let mut need_cmd = |cmd: &OsStr| {
if !checked.insert(cmd.to_owned()) {
return
}
if have_cmd(cmd).is_none() {
panic!("\n\ncouldn't find required command: {:?}\n\n", cmd);
}
};

// If we've got a git directory we're gona need git to update
Expand All @@ -75,8 +81,13 @@ pub fn check(build: &mut Build) {

need_cmd("python".as_ref());

// If a manual nodejs was added to the config,
// of if a nodejs install is detected through config, use it.
// Look for the nodejs command, needed for emscripten testing
if let Some(node) = have_cmd("node".as_ref()) {
build.config.nodejs = Some(node);
} else if let Some(node) = have_cmd("nodejs".as_ref()) {
build.config.nodejs = Some(node);
}

if let Some(ref s) = build.config.nodejs {
need_cmd(s.as_ref());
}
Expand Down

0 comments on commit 27588dd

Please sign in to comment.