Expand description
Implementation of bootstrap, the Rust build system.
This module, and its descendants, are the implementation of the Rust build system. Most of this build system is backed by Cargo but the outer layer here serves as the ability to orchestrate calling Cargo, sequencing Cargo builds, building artifacts like LLVM, etc. The goals of bootstrap are:
- To be an easily understandable, easily extensible, and maintainable build system.
- Leverage standard tools in the Rust ecosystem to build the compiler, aka crates.io and Cargo.
- A standard interface to build across all platforms, including MSVC
Β§Further information
More documentation can be found in each respective module below, and you can
also check out the src/bootstrap/README.md
file for more information.
Modules§
- core π
- utils π
- This module contains integral components of the build and configuration process, providing support for a wide range of tasks and operations such as caching, tarballs, release channels, job management, etc.
Macros§
- debug
- error
- forward π
- info
- t
- A helper macro to
unwrap
a result except also print out details like: - trace
- trace_
cmd - warn
Structs§
- Build
- Global configuration for the build system.
- Compiler
- A structure representing a Rust compiler.
- Config
- Global configuration for the entire build and/or bootstrap.
- Crate π
- Flags
- Deserialized version of all flags for this compile.
Enums§
- CLang
- Dependency
Type - When building Rust various objects are handled differently.
- DocTests
- GitRepo
- Mode
- The various βmodesβ of invoking Cargo.
- PathSet
- Collection of paths used to match a task rule.
- Subcommand
Constants§
- CONFIG_
CHANGE_ HISTORY - Keeps track of major changes made to the bootstrap configuration.
- EXTRA_
CHECK_ πCFGS - Extra
--check-cfg
to add when building the compiler or tools (Mode restriction, config name, config values (if any)) - LLD_
FILE_ πNAMES - LLD file names for all flavors.
- LLVM_
TOOLS π
Functions§
- chmod π
- envify π
- find_
recent_ config_ change_ ids - human_
readable_ changes - prepare_
behaviour_ dump_ dir - Ensures that the behavior dump directory is properly initialized.