| [workspace] |
| members = [ |
| "src/bootstrap", |
| "compiler/rustc", |
| "library/std", |
| "library/test", |
| "src/rustdoc-json-types", |
| "src/tools/cargotest", |
| "src/tools/clippy", |
| "src/tools/compiletest", |
| "src/tools/error_index_generator", |
| "src/tools/linkchecker", |
| "src/tools/lint-docs", |
| "src/tools/rustbook", |
| "src/tools/unstable-book-gen", |
| "src/tools/tidy", |
| "src/tools/tier-check", |
| "src/tools/build-manifest", |
| "src/tools/remote-test-client", |
| "src/tools/remote-test-server", |
| "src/tools/rust-installer", |
| "src/tools/rust-demangler", |
| "src/tools/cargo", |
| "src/tools/cargo/crates/credential/cargo-credential-1password", |
| "src/tools/cargo/crates/credential/cargo-credential-macos-keychain", |
| "src/tools/cargo/crates/credential/cargo-credential-wincred", |
| "src/tools/rustdoc", |
| "src/tools/rls", |
| "src/tools/rustfmt", |
| "src/tools/miri", |
| "src/tools/miri/cargo-miri", |
| "src/tools/rustdoc-themes", |
| "src/tools/unicode-table-generator", |
| "src/tools/expand-yaml-anchors", |
| "src/tools/jsondocck", |
| ] |
| |
| exclude = [ |
| "build", |
| "compiler/rustc_codegen_cranelift", |
| # HACK(eddyb) This hardcodes the fact that our CI uses `/checkout/obj`. |
| "obj", |
| # The `x` binary is a thin wrapper that calls `x.py`, which initializes |
| # submodules, before which workspace members cannot be invoked because |
| # not all `Cargo.toml` files are available, so we exclude the `x` binary, |
| # so it can be invoked before the current checkout is set up. |
| "src/tools/x", |
| ] |
| |
| [profile.release.package.compiler_builtins] |
| # The compiler-builtins crate cannot reference libcore, and it's own CI will |
| # verify that this is the case. This requires, however, that the crate is built |
| # without overflow checks and debug assertions. Forcefully disable debug |
| # assertions and overflow checks here which should ensure that even if these |
| # assertions are enabled for libstd we won't enable then for compiler_builtins |
| # which should ensure we still link everything correctly. |
| debug-assertions = false |
| overflow-checks = false |
| |
| # For compiler-builtins we always use a high number of codegen units. |
| # The goal here is to place every single intrinsic into its own object |
| # file to avoid symbol clashes with the system libgcc if possible. Note |
| # that this number doesn't actually produce this many object files, we |
| # just don't create more than this number of object files. |
| # |
| # It's a bit of a bummer that we have to pass this here, unfortunately. |
| # Ideally this would be specified through an env var to Cargo so Cargo |
| # knows how many CGUs are for this specific crate, but for now |
| # per-crate configuration isn't specifiable in the environment. |
| codegen-units = 10000 |
| |
| # These dependencies of the standard library implement symbolication for |
| # backtraces on most platforms. Their debuginfo causes both linking to be slower |
| # (more data to chew through) and binaries to be larger without really all that |
| # much benefit. This section turns them all to down to have no debuginfo which |
| # helps to improve link times a little bit. |
| [profile.release.package] |
| addr2line.debug = 0 |
| adler.debug = 0 |
| gimli.debug = 0 |
| miniz_oxide.debug = 0 |
| object.debug = 0 |
| |
| # We want the RLS to use the version of Cargo that we've got vendored in this |
| # repository to ensure that the same exact version of Cargo is used by both the |
| # RLS and the Cargo binary itself. The RLS depends on Cargo as a git repository |
| # so we use a `[patch]` here to override the github repository with our local |
| # vendored copy. |
| [patch."https://github.com/rust-lang/cargo"] |
| cargo = { path = "src/tools/cargo" } |
| |
| [patch."https://github.com/rust-lang/rustfmt"] |
| # Similar to Cargo above we want the RLS to use a vendored version of `rustfmt` |
| # that we're shipping as well (to ensure that the rustfmt in RLS and the |
| # `rustfmt` executable are the same exact version). |
| rustfmt-nightly = { path = "src/tools/rustfmt" } |
| |
| [patch.crates-io] |
| # See comments in `src/tools/rustc-workspace-hack/README.md` for what's going on |
| # here |
| rustc-workspace-hack = { path = 'src/tools/rustc-workspace-hack' } |
| |
| # See comments in `library/rustc-std-workspace-core/README.md` for what's going on |
| # here |
| rustc-std-workspace-core = { path = 'library/rustc-std-workspace-core' } |
| rustc-std-workspace-alloc = { path = 'library/rustc-std-workspace-alloc' } |
| rustc-std-workspace-std = { path = 'library/rustc-std-workspace-std' } |
| |
| [patch."https://github.com/rust-lang/rust-clippy"] |
| clippy_lints = { path = "src/tools/clippy/clippy_lints" } |