[package] name = "bootstrap" version = "0.0.0" edition = "2024" build = "build.rs" default-run = "bootstrap" [features] build-metrics = ["sysinfo"] tracing = ["dep:tracing", "dep:tracing-chrome", "dep:tracing-subscriber", "dep:tracing-forest"] [lib] path = "src/lib.rs" doctest = false [[bin]] name = "bootstrap" path = "src/bin/main.rs" test = false [[bin]] name = "rustc" path = "src/bin/rustc.rs" test = false [[bin]] name = "rustdoc" path = "src/bin/rustdoc.rs" test = false [dependencies] # Most of the time updating these dependencies requires modifications to the # bootstrap codebase(e.g., https://github.com/rust-lang/rust/issues/124565); # otherwise, some targets will fail. That's why these dependencies are explicitly pinned. cc = "=1.2.23" cmake = "=0.1.54" build_helper = { path = "../build_helper" } clap = { version = "4.4", default-features = false, features = ["std", "usage", "help", "derive", "error-context"] } clap_complete = "4.4" fd-lock = "4.0" home = "0.5" ignore = "0.4" libc = "0.2" object = { version = "0.36.3", default-features = false, features = ["archive", "coff", "read_core", "std", "unaligned"] } opener = "0.5" semver = "1.0" serde = "1.0" # Directly use serde_derive rather than through the derive feature of serde to allow building both # in parallel and to allow serde_json and toml to start building as soon as serde has been built. serde_derive = "1.0" serde_json = "1.0" sha2 = "0.10" tar = "0.4" termcolor = "1.4" toml = "0.5" walkdir = "2.4" xz2 = "0.1" # Dependencies needed by the build-metrics feature sysinfo = { version = "0.36.0", default-features = false, optional = true, features = ["system"] } # Dependencies needed by the `tracing` feature tracing = { version = "0.1", optional = true, features = ["attributes"] } tracing-chrome = { version = "0.7", optional = true } tracing-subscriber = { version = "0.3", optional = true, features = ["env-filter", "fmt", "registry", "std"] } tracing-forest = { version = "0.1.6", optional = true, default-features = false, features = ["smallvec", "ansi", "env-filter"] } [target.'cfg(windows)'.dependencies.junction] version = "1.0.0" [target.'cfg(windows)'.dependencies.windows] version = "0.61" features = [ "Win32_Foundation", "Win32_Security", "Win32_System_Diagnostics_Debug", "Win32_System_JobObjects", "Win32_System_ProcessStatus", "Win32_System_Threading", "Win32_System_Time", ] [dev-dependencies] pretty_assertions = "1.4" tempfile = "3.15.0" insta = "1.43" # We care a lot about bootstrap's compile times, so don't include debuginfo for # dependencies, only bootstrap itself. [profile.dev] debug = 0 [profile.dev.package] # Only use debuginfo=1 to further reduce compile times. bootstrap.debug = 1