]> git.lizzy.rs Git - rust.git/blob - src/librustc/Cargo.toml
Rollup merge of #60862 - spastorino:get-ty-from-local_decls, r=oli-obk
[rust.git] / src / librustc / Cargo.toml
1 [package]
2 authors = ["The Rust Project Developers"]
3 name = "rustc"
4 version = "0.0.0"
5 edition = "2018"
6
7 [lib]
8 name = "rustc"
9 path = "lib.rs"
10 crate-type = ["dylib"]
11
12 [dependencies]
13 arena = { path = "../libarena" }
14 bitflags = "1.0"
15 fmt_macros = { path = "../libfmt_macros" }
16 graphviz = { path = "../libgraphviz" }
17 jobserver = "0.1"
18 lazy_static = "1.0.0"
19 num_cpus = "1.0"
20 scoped-tls = "1.0"
21 log = { version = "0.4", features = ["release_max_level_info", "std"] }
22 polonius-engine = "0.7.0"
23 rustc-rayon = "0.2.0"
24 rustc-rayon-core = "0.2.0"
25 rustc_apfloat = { path = "../librustc_apfloat" }
26 rustc_target = { path = "../librustc_target" }
27 rustc_macros = { path = "../librustc_macros" }
28 rustc_data_structures = { path = "../librustc_data_structures" }
29 errors = { path = "../librustc_errors", package = "rustc_errors" }
30 serialize = { path = "../libserialize" }
31 syntax = { path = "../libsyntax" }
32 syntax_pos = { path = "../libsyntax_pos" }
33 backtrace = "0.3.3"
34 parking_lot = "0.7"
35 byteorder = { version = "1.1", features = ["i128"]}
36 chalk-engine = { version = "0.9.0", default-features=false }
37 rustc_fs_util = { path = "../librustc_fs_util" }
38 smallvec = { version = "0.6.7", features = ["union", "may_dangle"] }
39 measureme = "0.3"
40
41 # Note that these dependencies are a lie, they're just here to get linkage to
42 # work.
43 #
44 # We're creating a bunch of dylibs for the compiler but we're also compiling a
45 # bunch of crates.io crates. Everything in the compiler is compiled as an
46 # rlib/dylib pair but all crates.io crates tend to just be rlibs. This means
47 # we've got a problem for dependency graphs that look like:
48 #
49 #           foo - rustc_codegen_llvm
50 #         /                  \
51 #   rustc                     ---- rustc_driver
52 #         \                     /
53 #           foo - rustc_metadata
54 #
55 # Here the crate `foo` is linked into the `rustc_codegen_llvm` and the
56 # `rustc_metadata` dylibs, meaning we've got duplicate copies! When we then
57 # go to link `rustc_driver` the compiler notices this and gives us a compiler
58 # error.
59 #
60 # To work around this problem we just add these crates.io dependencies to the
61 # `rustc` crate which is a shared dependency above. That way the crate `foo`
62 # shows up in the dylib for the `rustc` crate, deduplicating it and allowing
63 # crates like `rustc_codegen_llvm` to use `foo` *through* the `rustc` crate.
64 #
65 # tl;dr; this is not needed to get `rustc` to compile, but if you remove it then
66 #        later crate stop compiling. If you can remove this and everything
67 #        compiles, then please feel free to do so!
68 flate2 = "1.0"
69 tempfile = "3.0"