Expand description
Entry point for the config module.
This module defines two macros:
-
define_config!: A declarative macro used instead of#[derive(Deserialize)]to reduce compile time and binary size, especially for the bootstrap binary. -
check_ci_llvm!: A compile-time assertion macro that ensures certain settings are not enabled whendownload-ci-llvmis active.
A declarative macro is used here in place of a procedural derive macro to minimize the compile time of the bootstrap process.
Additionally, this module defines common types, enums, and helper functions used across
various TOML configuration sections in bootstrap.toml.
It provides shared definitions for:
- Data types deserialized from TOML.
- Utility enums for specific configuration options.
- Helper functions for managing configuration values.
Re-exports§
pub use target_selection::TargetSelection;pub use toml::BUILDER_CONFIG_FILENAME;pub use toml::change_id::ChangeId;pub use toml::rust::LldMode;pub use toml::target::Target;pub use config::*;
Modules§
- config 🔒
- This module defines the central
Configstruct, which aggregates all components of the bootstrap configuration into a single unit. - flags
- Command-line interface of the bootstrap build system.
- target_
selection - toml
- This module defines the structures that directly mirror the
bootstrap.tomlfile’s format. These types are used forserdedeserialization.
Enums§
- Debuginfo
Level - DryRun
- GccCi
Mode - Determines how will GCC be provided.
- Llvm
Libunwind - Replace
Opt - Describes how to handle conflicts in merging two
TomlConfig - Rustc
Lto - LTO mode used for compiling rustc itself.
- Split
Debuginfo - String
OrBool - String
OrInt
Traits§
- Merge 🔒