]>
Commit | Line | Data |
---|---|---|
476ff2be SL |
1 | [workspace] |
2 | members = [ | |
a1dfa0c6 | 3 | "src/bootstrap", |
1b1a35ee | 4 | "compiler/rustc", |
3dfed10e XL |
5 | "library/std", |
6 | "library/test", | |
a1dfa0c6 XL |
7 | "src/tools/cargotest", |
8 | "src/tools/clippy", | |
9 | "src/tools/compiletest", | |
10 | "src/tools/error_index_generator", | |
11 | "src/tools/linkchecker", | |
1b1a35ee | 12 | "src/tools/lint-docs", |
a1dfa0c6 XL |
13 | "src/tools/rustbook", |
14 | "src/tools/unstable-book-gen", | |
15 | "src/tools/tidy", | |
3dfed10e | 16 | "src/tools/tier-check", |
a1dfa0c6 XL |
17 | "src/tools/build-manifest", |
18 | "src/tools/remote-test-client", | |
19 | "src/tools/remote-test-server", | |
20 | "src/tools/rust-installer", | |
3dfed10e | 21 | "src/tools/rust-demangler", |
a1dfa0c6 XL |
22 | "src/tools/cargo", |
23 | "src/tools/rustdoc", | |
24 | "src/tools/rls", | |
25 | "src/tools/rustfmt", | |
26 | "src/tools/miri", | |
f9f354fc | 27 | "src/tools/miri/cargo-miri", |
a1dfa0c6 | 28 | "src/tools/rustdoc-themes", |
dfeec247 | 29 | "src/tools/unicode-table-generator", |
ba9703b0 | 30 | "src/tools/expand-yaml-anchors", |
8faf50e0 | 31 | ] |
29967ef6 | 32 | |
8faf50e0 | 33 | exclude = [ |
a1dfa0c6 | 34 | "build", |
29967ef6 | 35 | "compiler/rustc_codegen_cranelift", |
a1dfa0c6 XL |
36 | # HACK(eddyb) This hardcodes the fact that our CI uses `/checkout/obj`. |
37 | "obj", | |
29967ef6 XL |
38 | # The `x` binary is a thin wrapper that calls `x.py`, which initializes |
39 | # submodules, before which workspace members cannot be invoked because | |
40 | # not all `Cargo.toml` files are available, so we exclude the `x` binary, | |
41 | # so it can be invoked before the current checkout is set up. | |
42 | "src/tools/x", | |
476ff2be SL |
43 | ] |
44 | ||
f035d41b XL |
45 | [profile.release.package.compiler_builtins] |
46 | # The compiler-builtins crate cannot reference libcore, and it's own CI will | |
47 | # verify that this is the case. This requires, however, that the crate is built | |
48 | # without overflow checks and debug assertions. Forcefully disable debug | |
49 | # assertions and overflow checks here which should ensure that even if these | |
50 | # assertions are enabled for libstd we won't enable then for compiler_builtins | |
51 | # which should ensure we still link everything correctly. | |
476ff2be | 52 | debug-assertions = false |
f035d41b XL |
53 | overflow-checks = false |
54 | ||
55 | # For compiler-builtins we always use a high number of codegen units. | |
56 | # The goal here is to place every single intrinsic into its own object | |
57 | # file to avoid symbol clashes with the system libgcc if possible. Note | |
58 | # that this number doesn't actually produce this many object files, we | |
59 | # just don't create more than this number of object files. | |
60 | # | |
61 | # It's a bit of a bummer that we have to pass this here, unfortunately. | |
62 | # Ideally this would be specified through an env var to Cargo so Cargo | |
63 | # knows how many CGUs are for this specific crate, but for now | |
64 | # per-crate configuration isn't specifiable in the environment. | |
65 | codegen-units = 10000 | |
ea8adc8c | 66 | |
3dfed10e XL |
67 | # These dependencies of the standard library implement symbolication for |
68 | # backtraces on most platforms. Their debuginfo causes both linking to be slower | |
69 | # (more data to chew through) and binaries to be larger without really all that | |
70 | # much benefit. This section turns them all to down to have no debuginfo which | |
71 | # helps to improve link times a little bit. | |
72 | [profile.release.package] | |
73 | addr2line.debug = 0 | |
74 | adler.debug = 0 | |
75 | gimli.debug = 0 | |
76 | miniz_oxide.debug = 0 | |
77 | object.debug = 0 | |
78 | ||
2c00a5a8 XL |
79 | # We want the RLS to use the version of Cargo that we've got vendored in this |
80 | # repository to ensure that the same exact version of Cargo is used by both the | |
81 | # RLS and the Cargo binary itself. The RLS depends on Cargo as a git repository | |
82 | # so we use a `[patch]` here to override the github repository with our local | |
83 | # vendored copy. | |
ea8adc8c | 84 | [patch."https://github.com/rust-lang/cargo"] |
a1dfa0c6 | 85 | cargo = { path = "src/tools/cargo" } |
ea8adc8c | 86 | |
3dfed10e | 87 | [patch."https://github.com/rust-lang/rustfmt"] |
2c00a5a8 XL |
88 | # Similar to Cargo above we want the RLS to use a vendored version of `rustfmt` |
89 | # that we're shipping as well (to ensure that the rustfmt in RLS and the | |
8faf50e0 | 90 | # `rustfmt` executable are the same exact version). |
a1dfa0c6 | 91 | rustfmt-nightly = { path = "src/tools/rustfmt" } |
8faf50e0 | 92 | |
3dfed10e | 93 | [patch.crates-io] |
a1dfa0c6 | 94 | # See comments in `src/tools/rustc-workspace-hack/README.md` for what's going on |
8faf50e0 | 95 | # here |
a1dfa0c6 | 96 | rustc-workspace-hack = { path = 'src/tools/rustc-workspace-hack' } |
8faf50e0 | 97 | |
3dfed10e | 98 | # See comments in `library/rustc-std-workspace-core/README.md` for what's going on |
0731742a | 99 | # here |
3dfed10e XL |
100 | rustc-std-workspace-core = { path = 'library/rustc-std-workspace-core' } |
101 | rustc-std-workspace-alloc = { path = 'library/rustc-std-workspace-alloc' } | |
102 | rustc-std-workspace-std = { path = 'library/rustc-std-workspace-std' } | |
103 | ||
104 | # This crate's integration with libstd is a bit wonky, so we use a submodule | |
105 | # instead of a crates.io dependency. Make sure everything else in the repo is | |
106 | # also using the submodule, however, so we can avoid duplicate copies of the | |
107 | # source code for this crate. | |
108 | backtrace = { path = "library/backtrace" } | |
0731742a | 109 | |
450edc1f | 110 | [patch."https://github.com/rust-lang/rust-clippy"] |
a1dfa0c6 | 111 | clippy_lints = { path = "src/tools/clippy/clippy_lints" } |