use build_helper::output;
use crate::Build;
-use crate::config::Config;
// The version number
pub const CFG_RELEASE_NUM: &str = "1.35.0";
}
impl GitInfo {
- pub fn new(config: &Config, dir: &Path) -> GitInfo {
+ pub fn new(ignore_git: bool, dir: &Path) -> GitInfo {
// See if this even begins to look like a git dir
- if config.ignore_git || !dir.join(".git").exists() {
+ if ignore_git || !dir.join(".git").exists() {
return GitInfo { inner: None }
}
// Make sure git commands work
- let out = Command::new("git")
- .arg("rev-parse")
- .current_dir(dir)
- .output()
- .expect("failed to spawn git");
- if !out.status.success() {
- return GitInfo { inner: None }
+ match Command::new("git")
+ .arg("rev-parse")
+ .current_dir(dir)
+ .output()
+ {
+ Ok(ref out) if out.status.success() => {}
+ _ => return GitInfo { inner: None },
}
// Ok, let's scrape some info
}
None => false,
};
- let rust_info = channel::GitInfo::new(&config, &src);
- let cargo_info = channel::GitInfo::new(&config, &src.join("src/tools/cargo"));
- let rls_info = channel::GitInfo::new(&config, &src.join("src/tools/rls"));
- let clippy_info = channel::GitInfo::new(&config, &src.join("src/tools/clippy"));
- let miri_info = channel::GitInfo::new(&config, &src.join("src/tools/miri"));
- let rustfmt_info = channel::GitInfo::new(&config, &src.join("src/tools/rustfmt"));
- let in_tree_llvm_info = channel::GitInfo::new(&config, &src.join("src/llvm-project"));
- let emscripten_llvm_info = channel::GitInfo::new(&config, &src.join("src/llvm-emscripten"));
+
+ let ignore_git = config.ignore_git;
+ let rust_info = channel::GitInfo::new(ignore_git, &src);
+ let cargo_info = channel::GitInfo::new(ignore_git, &src.join("src/tools/cargo"));
+ let rls_info = channel::GitInfo::new(ignore_git, &src.join("src/tools/rls"));
+ let clippy_info = channel::GitInfo::new(ignore_git, &src.join("src/tools/clippy"));
+ let miri_info = channel::GitInfo::new(ignore_git, &src.join("src/tools/miri"));
+ let rustfmt_info = channel::GitInfo::new(ignore_git, &src.join("src/tools/rustfmt"));
+
+ // we always try to use git for LLVM builds
+ let in_tree_llvm_info = channel::GitInfo::new(false, &src.join("src/llvm-project"));
+ let emscripten_llvm_info = channel::GitInfo::new(false, &src.join("src/llvm-emscripten"));
let mut build = Build {
initial_rustc: config.initial_rustc.clone(),
cargo.env("CFG_VERSION", builder.rust_version());
cargo.env("CFG_RELEASE_NUM", channel::CFG_RELEASE_NUM);
- let info = GitInfo::new(&builder.config, &dir);
+ let info = GitInfo::new(builder.config.ignore_git, &dir);
if let Some(sha) = info.sha() {
cargo.env("CFG_COMMIT_HASH", sha);
}