// the options through environment variables that are fetched and understood by both.
//
// FIXME: the guard against msvc shouldn't need to be here
- if !target.contains("msvc") && !cfg!(test) {
+ if !target.contains("msvc") {
let ccache = self.config.ccache.as_ref();
let ccacheify = |s: &Path| {
let ccache = match ccache {
fn configure(host: &[&str], target: &[&str]) -> Config {
let mut config = Config::default_opts();
+ // don't save toolstates
+ config.save_toolstates = None;
config.run_host_only = true;
config.build = INTERNER.intern_str("A");
config.hosts = vec![config.build].clone().into_iter()
cc_detect::find(&mut build);
build.verbose("running sanity check");
sanity::check(&mut build);
- if !cfg!(test) {
- // If local-rust is the same major.minor as the current version, then force a
- // local-rebuild
- let local_version_verbose = output(
- Command::new(&build.initial_rustc).arg("--version").arg("--verbose"));
- let local_release = local_version_verbose
- .lines().filter(|x| x.starts_with("release:"))
- .next().unwrap().trim_left_matches("release:").trim();
- let my_version = channel::CFG_RELEASE_NUM;
- if local_release.split('.').take(2).eq(my_version.split('.').take(2)) {
- build.verbose(&format!("auto-detected local-rebuild {}", local_release));
- build.local_rebuild = true;
- }
+
+ // If local-rust is the same major.minor as the current version, then force a
+ // local-rebuild
+ let local_version_verbose = output(
+ Command::new(&build.initial_rustc).arg("--version").arg("--verbose"));
+ let local_release = local_version_verbose
+ .lines().filter(|x| x.starts_with("release:"))
+ .next().unwrap().trim_left_matches("release:").trim();
+ let my_version = channel::CFG_RELEASE_NUM;
+ if local_release.split('.').take(2).eq(my_version.split('.').take(2)) {
+ build.verbose(&format!("auto-detected local-rebuild {}", local_release));
+ build.local_rebuild = true;
}
+
build.verbose("learning about cargo");
metadata::build(&mut build);
///
/// After this executes, it will also ensure that `dir` exists.
fn clear_if_dirty(&self, dir: &Path, input: &Path) -> bool {
- if cfg!(test) { return true; }
let stamp = dir.join(".stamp");
let mut cleared = false;
if mtime(&stamp) < mtime(input) {
/// Returns the path to the linker for the given target if it needs to be overridden.
fn linker(&self, target: Interned<String>) -> Option<&Path> {
- if cfg!(test) { return None; }
if let Some(linker) = self.config.target_config.get(&target)
.and_then(|c| c.linker.as_ref()) {
Some(linker)
/// Copies a file from `src` to `dst`
pub fn copy(src: &Path, dst: &Path) {
- if cfg!(test) { return; }
let _ = fs::remove_file(&dst);
// Attempt to "easy copy" by creating a hard link (symlinks don't work on
// windows), but if that fails just fall back to a slow `copy` operation.
}
pub fn read_stamp_file(stamp: &Path) -> Vec<PathBuf> {
- if cfg!(test) { return vec![]; }
let mut paths = Vec::new();
let mut contents = Vec::new();
t!(t!(File::open(stamp)).read_to_end(&mut contents));