[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",
  # stdarch has its own Cargo workspace
  "library/stdarch",
]

[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" }
cargo-util = { path = "src/tools/cargo/crates/cargo-util" }

[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" }
