[workspace]
resolver = "2"
members = [
# tidy-alphabetical-start
  "compiler/rustc",
  "src/build_helper",
  "src/rustc-std-workspace/rustc-std-workspace-alloc",
  "src/rustc-std-workspace/rustc-std-workspace-core",
  "src/rustc-std-workspace/rustc-std-workspace-std",
  "src/rustdoc-json-types",
  "src/tools/build-manifest",
  "src/tools/bump-stage0",
  "src/tools/cargotest",
  "src/tools/clippy",
  "src/tools/clippy/clippy_dev",
  "src/tools/collect-license-metadata",
  "src/tools/compiletest",
  "src/tools/coverage-dump",
  "src/tools/features-status-dump",
  "src/tools/generate-copyright",
  "src/tools/generate-windows-sys",
  "src/tools/html-checker",
  "src/tools/jsondocck",
  "src/tools/jsondoclint",
  "src/tools/linkchecker",
  "src/tools/lint-docs",
  "src/tools/lld-wrapper",
  "src/tools/llvm-bitcode-linker",
  "src/tools/miri",
  "src/tools/miri/cargo-miri",
  "src/tools/miropt-test-tools",
  "src/tools/opt-dist",
  "src/tools/remote-test-client",
  "src/tools/remote-test-server",
  "src/tools/replace-version-placeholder",
  "src/tools/run-make-support",
  "src/tools/rust-installer",
  "src/tools/rustdoc",
  "src/tools/rustdoc-gui-test",
  "src/tools/rustdoc-themes",
  "src/tools/rustfmt",
  "src/tools/test-float-parse",
  "src/tools/tidy",
  "src/tools/tier-check",
  "src/tools/unicode-table-generator",
  "src/tools/unstable-book-gen",
  "src/tools/wasm-component-ld",
  "src/tools/x",
# tidy-alphabetical-end
]

exclude = [
  "build",
  "compiler/rustc_codegen_cranelift",
  "compiler/rustc_codegen_gcc",
  "src/bootstrap",
  "tests/rustdoc-gui",
  # HACK(eddyb) This hardcodes the fact that our CI uses `/checkout/obj`.
  "obj",
]

[profile.release.package.rustc_thread_pool]
# The rustc fork of Rayon has deadlock detection code which intermittently
# causes overflows in the CI (see https://github.com/rust-lang/rust/issues/90227)
# so we turn overflow checks off for now.
# FIXME: This workaround should be removed once #90227 is fixed.
overflow-checks = false

# These are very thin wrappers around executing lld with the right binary name.
# Basically nothing within them can go wrong without having been explicitly logged anyway.
# We ship these in every rustc tarball and even after compression they add up
# to around 0.6MB of data every user needs to download (and 15MB on disk).
[profile.release.package.lld-wrapper]
debug = 0
strip = true
[profile.release.package.wasm-component-ld-wrapper]
debug = 0
strip = true

# Bigint libraries are slow without optimization, speed up testing
[profile.dev.package.test-float-parse]
opt-level = 3

# Speed up the binary as much as possible
[profile.release.package.test-float-parse]
opt-level = 3
codegen-units = 1
# FIXME: LTO cannot be enabled for binaries in a workspace
# <https://github.com/rust-lang/cargo/issues/9330>
# lto = true

# If you want to use a crate with local modifications, you can set a path or git dependency here.
# For git dependencies, also add your source to ALLOWED_SOURCES in src/tools/tidy/src/extdeps.rs.
#[patch.crates-io]

