use std::cmp;
use build_helper::t;
-use num_cpus;
use toml;
use serde::Deserialize;
use crate::cache::{INTERNER, Interned};
pub test_compare_mode: bool,
pub llvm_libunwind: bool,
- pub run_host_only: bool,
+ pub skip_only_host_steps: bool,
pub on_fail: Option<String>,
pub stage: Option<u32>,
config.rustc_error_format = flags.rustc_error_format;
config.on_fail = flags.on_fail;
config.stage = flags.stage;
- config.jobs = flags.jobs;
+ config.jobs = flags.jobs.map(threads_from_config);
config.cmd = flags.cmd;
config.incremental = flags.incremental;
config.dry_run = flags.dry_run;
}
// If --target was specified but --host wasn't specified, don't run any host-only tests.
- config.run_host_only = !(flags.host.is_empty() && !flags.target.is_empty());
+ let has_hosts = !flags.host.is_empty();
+ let has_targets = !flags.target.is_empty();
+ config.skip_only_host_steps = !has_hosts && has_targets;
let toml = file.map(|file| {
let contents = t!(fs::read_to_string(&file));
set(&mut config.rust_codegen_backends_dir, rust.codegen_backends_dir.clone());
- match rust.codegen_units {
- Some(0) => config.rust_codegen_units = Some(num_cpus::get() as u32),
- Some(n) => config.rust_codegen_units = Some(n),
- None => {}
- }
-
- config.rust_codegen_units_std = rust.codegen_units_std;
+ config.rust_codegen_units = rust.codegen_units.map(threads_from_config);
+ config.rust_codegen_units_std = rust.codegen_units_std.map(threads_from_config);
}
if let Some(ref t) = toml.target {
config.rust_debuginfo_level_rustc = with_defaults(debuginfo_level_rustc);
config.rust_debuginfo_level_std = with_defaults(debuginfo_level_std);
config.rust_debuginfo_level_tools = with_defaults(debuginfo_level_tools);
- config.rust_debuginfo_level_tests = with_defaults(debuginfo_level_tests);
+ config.rust_debuginfo_level_tests = debuginfo_level_tests.unwrap_or(0);
let default = config.channel == "dev";
config.ignore_git = ignore_git.unwrap_or(default);
*field = v;
}
}
+
+fn threads_from_config(v: u32) -> u32 {
+ match v {
+ 0 => num_cpus::get() as u32,
+ n => n,
+ }
+}