diff options
| author | Stypox <stypox@pm.me> | 2025-06-12 13:53:22 +0200 |
|---|---|---|
| committer | Stypox <stypox@pm.me> | 2025-06-12 13:58:38 +0200 |
| commit | 17f69bfda0f38939bd3f2a8ae697ad8a7d5004f7 (patch) | |
| tree | 591f1d85ffc662daaae71f3381428ed43088df2f | |
| parent | 8dac423f827611ae3090078cdb2b3f54b677d8eb (diff) | |
| download | rust-17f69bfda0f38939bd3f2a8ae697ad8a7d5004f7.tar.gz rust-17f69bfda0f38939bd3f2a8ae697ad8a7d5004f7.zip | |
Rename tool-config to tool and add docs
| -rw-r--r-- | bootstrap.example.toml | 5 | ||||
| -rw-r--r-- | src/bootstrap/src/core/build_steps/tool.rs | 15 | ||||
| -rw-r--r-- | src/bootstrap/src/core/config/config.rs | 10 | ||||
| -rw-r--r-- | src/bootstrap/src/core/config/toml/build.rs | 5 | ||||
| -rw-r--r-- | src/bootstrap/src/utils/change_tracker.rs | 2 |
5 files changed, 20 insertions, 17 deletions
diff --git a/bootstrap.example.toml b/bootstrap.example.toml index 17044816c01..19cf360b0fb 100644 --- a/bootstrap.example.toml +++ b/bootstrap.example.toml @@ -382,12 +382,13 @@ #] # Specify build configuration specific for some tool, such as enabled features. +# This option has no effect on which tools are enabled: refer to the `tools` option for that. # -# For example, to build Miri with tracing support, use `tool-config.miri.features = ["tracing"]` +# For example, to build Miri with tracing support, use `tool.miri.features = ["tracing"]` # # The default value for the `features` array is `[]`. However, please note that other flags in # `bootstrap.toml` might influence the features enabled for some tools. -#tool-config.TOOL_NAME.features = [FEATURE1, FEATURE2] +#tool.TOOL_NAME.features = [FEATURE1, FEATURE2] # Verbosity level: 0 == not verbose, 1 == verbose, 2 == very verbose, 3 == print environment variables on each rustc invocation #verbose = 0 diff --git a/src/bootstrap/src/core/build_steps/tool.rs b/src/bootstrap/src/core/build_steps/tool.rs index 102e96a4144..0c2446acc4e 100644 --- a/src/bootstrap/src/core/build_steps/tool.rs +++ b/src/bootstrap/src/core/build_steps/tool.rs @@ -136,17 +136,16 @@ impl Step for ToolBuild { _ => panic!("unexpected Mode for tool build"), } - // build.tool-config.TOOL_NAME.features in bootstrap.toml allows specifying which features - // to enable for a specific tool. `extra_features` instead is not controlled by the toml - // instead provides features that are always enabled for a specific tool (e.g. - // "in-rust-tree" for rust-analyzer). Finally, `prepare_tool_cargo` might add more features - // to adapt the build to the chosen flags (e.g. "all-static" for cargo if - // `cargo_native_static` is true). + // build.tool.TOOL_NAME.features in bootstrap.toml allows specifying which features to + // enable for a specific tool. `extra_features` instead is not controlled by the toml and + // provides features that are always enabled for a specific tool (e.g. "in-rust-tree" for + // rust-analyzer). Finally, `prepare_tool_cargo` might add more features to adapt the build + // to the chosen flags (e.g. "all-static" for cargo if `cargo_native_static` is true). let mut features = builder .config - .tool_config + .tool .get(self.tool) - .and_then(|tool_config| tool_config.features.clone()) + .and_then(|tool| tool.features.clone()) .unwrap_or_default(); features.extend(self.extra_features.clone()); diff --git a/src/bootstrap/src/core/config/config.rs b/src/bootstrap/src/core/config/config.rs index b1af6908c41..de6ba74e195 100644 --- a/src/bootstrap/src/core/config/config.rs +++ b/src/bootstrap/src/core/config/config.rs @@ -35,7 +35,7 @@ pub use crate::core::config::flags::Subcommand; use crate::core::config::flags::{Color, Flags}; use crate::core::config::target_selection::TargetSelectionList; use crate::core::config::toml::TomlConfig; -use crate::core::config::toml::build::{Build, ToolConfig}; +use crate::core::config::toml::build::{Build, Tool}; use crate::core::config::toml::change_id::ChangeId; use crate::core::config::toml::rust::{ LldMode, RustOptimize, check_incompatible_options_for_ci_rustc, @@ -114,7 +114,9 @@ pub struct Config { pub bootstrap_cache_path: Option<PathBuf>, pub extended: bool, pub tools: Option<HashSet<String>>, - pub tool_config: HashMap<String, ToolConfig>, + /// Specify build configuration specific for some tool, such as enabled features, see [Tool]. + /// The key in the map is the name of the tool, and the value is tool-specific configuration. + pub tool: HashMap<String, Tool>, pub sanitizers: bool, pub profiler: bool, pub omit_git_hash: bool, @@ -690,7 +692,7 @@ impl Config { bootstrap_cache_path, extended, tools, - tool_config, + tool, verbose, sanitizers, profiler, @@ -837,7 +839,7 @@ impl Config { set(&mut config.full_bootstrap, full_bootstrap); set(&mut config.extended, extended); config.tools = tools; - set(&mut config.tool_config, tool_config); + set(&mut config.tool, tool); set(&mut config.verbose, verbose); set(&mut config.sanitizers, sanitizers); set(&mut config.profiler, profiler); diff --git a/src/bootstrap/src/core/config/toml/build.rs b/src/bootstrap/src/core/config/toml/build.rs index a530843471d..98e1194de72 100644 --- a/src/bootstrap/src/core/config/toml/build.rs +++ b/src/bootstrap/src/core/config/toml/build.rs @@ -44,7 +44,7 @@ define_config! { bootstrap_cache_path: Option<PathBuf> = "bootstrap-cache-path", extended: Option<bool> = "extended", tools: Option<HashSet<String>> = "tools", - tool_config: Option<HashMap<String, ToolConfig>> = "tool-config", + tool: Option<HashMap<String, Tool>> = "tool", verbose: Option<usize> = "verbose", sanitizers: Option<bool> = "sanitizers", profiler: Option<bool> = "profiler", @@ -75,8 +75,9 @@ define_config! { } define_config! { + /// Configuration specific for some tool, e.g. which features to enable during build. #[derive(Default, Clone)] - struct ToolConfig { + struct Tool { features: Option<Vec<String>> = "features", } } diff --git a/src/bootstrap/src/utils/change_tracker.rs b/src/bootstrap/src/utils/change_tracker.rs index b6ba4b03add..93e01a58077 100644 --- a/src/bootstrap/src/utils/change_tracker.rs +++ b/src/bootstrap/src/utils/change_tracker.rs @@ -424,6 +424,6 @@ pub const CONFIG_CHANGE_HISTORY: &[ChangeInfo] = &[ ChangeInfo { change_id: 142379, severity: ChangeSeverity::Info, - summary: "Added new option `tool-config.TOOL_NAME.features` to specify the features to compile a tool with", + summary: "Added new option `tool.TOOL_NAME.features` to specify the features to compile a tool with", }, ]; |
