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-llvm
is 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
Config
struct, 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.toml
file’s format. These types are used forserde
deserialization.
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 🔒