diff options
| author | bors <bors@rust-lang.org> | 2020-09-30 15:03:09 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2020-09-30 15:03:09 +0000 |
| commit | d92d28e523bf056ab4eb752510ec52fe4f1c6311 (patch) | |
| tree | 70536774b7345aec60734603f9128c79fabebac0 /src/bootstrap | |
| parent | 939cc3e445db1eaf8b3834984e274f8c2267d9c5 (diff) | |
| parent | d537067c97531af7f8343f75fafb4d6b9e79eaaf (diff) | |
| download | rust-d92d28e523bf056ab4eb752510ec52fe4f1c6311.tar.gz rust-d92d28e523bf056ab4eb752510ec52fe4f1c6311.zip | |
Auto merge of #77298 - jyn514:bootstrap-config, r=Mark-Simulacrum
Don't warn if the config file is somewhere other than `config.toml` Previously, `config.config` was always hardcoded as `"config.toml"`. I thought that it was being overridden with the actual value later, but it turns out `flags.config` was being completely discarded. This keeps `config.config` in sync with `flags.config`. Fixes https://github.com/rust-lang/rust/issues/77293 r? `@Mark-Simulacrum` cc `@davidtwco`
Diffstat (limited to 'src/bootstrap')
| -rw-r--r-- | src/bootstrap/config.rs | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/src/bootstrap/config.rs b/src/bootstrap/config.rs index 9c6b88243e2..5314398ce9a 100644 --- a/src/bootstrap/config.rs +++ b/src/bootstrap/config.rs @@ -513,7 +513,6 @@ impl Config { config.rust_codegen_backends = vec![INTERNER.intern_str("llvm")]; config.deny_warnings = true; config.missing_tools = false; - config.config = PathBuf::from("config.toml"); // set by bootstrap.py config.build = TargetSelection::from_user(&env!("BUILD_TRIPLE")); @@ -556,10 +555,10 @@ impl Config { #[cfg(test)] let get_toml = |_| TomlConfig::default(); #[cfg(not(test))] - let get_toml = |file: PathBuf| { + let get_toml = |file: &Path| { use std::process; - let contents = t!(fs::read_to_string(&file), "`include` config not found"); + let contents = t!(fs::read_to_string(file), "`include` config not found"); match toml::from_str(&contents) { Ok(table) => table, Err(err) => { @@ -569,18 +568,21 @@ impl Config { } }; - let mut toml = flags.config.map(get_toml).unwrap_or_else(TomlConfig::default); + let mut toml = flags.config.as_deref().map(get_toml).unwrap_or_else(TomlConfig::default); if let Some(include) = &toml.profile { let mut include_path = config.src.clone(); include_path.push("src"); include_path.push("bootstrap"); include_path.push("defaults"); include_path.push(format!("config.toml.{}", include)); - let included_toml = get_toml(include_path); + let included_toml = get_toml(&include_path); toml.merge(included_toml); } config.changelog_seen = toml.changelog_seen; + if let Some(cfg) = flags.config { + config.config = cfg; + } let build = toml.build.unwrap_or_default(); |
