67 lines
2.5 KiB
TOML
67 lines
2.5 KiB
TOML
[package]
|
|
authors = ["The Rust Project Developers"]
|
|
name = "rustc"
|
|
version = "0.0.0"
|
|
|
|
[lib]
|
|
name = "rustc"
|
|
path = "lib.rs"
|
|
crate-type = ["dylib"]
|
|
|
|
[dependencies]
|
|
arena = { path = "../libarena" }
|
|
bitflags = "1.0"
|
|
fmt_macros = { path = "../libfmt_macros" }
|
|
graphviz = { path = "../libgraphviz" }
|
|
jobserver = "0.1"
|
|
lazy_static = "1.0.0"
|
|
scoped-tls = { version = "0.1.1", features = ["nightly"] }
|
|
log = { version = "0.4", features = ["release_max_level_info", "std"] }
|
|
polonius-engine = "0.5.0"
|
|
proc_macro = { path = "../libproc_macro" }
|
|
rustc-rayon = "0.1.1"
|
|
rustc-rayon-core = "0.1.1"
|
|
rustc_apfloat = { path = "../librustc_apfloat" }
|
|
rustc_target = { path = "../librustc_target" }
|
|
rustc_data_structures = { path = "../librustc_data_structures" }
|
|
rustc_errors = { path = "../librustc_errors" }
|
|
serialize = { path = "../libserialize" }
|
|
syntax = { path = "../libsyntax" }
|
|
syntax_pos = { path = "../libsyntax_pos" }
|
|
backtrace = "0.3.3"
|
|
parking_lot = "0.5.5"
|
|
byteorder = { version = "1.1", features = ["i128"]}
|
|
chalk-engine = { version = "0.7.0", default-features=false }
|
|
rustc_fs_util = { path = "../librustc_fs_util" }
|
|
smallvec = { version = "0.6.5", features = ["union"] }
|
|
|
|
# Note that these dependencies are a lie, they're just here to get linkage to
|
|
# work.
|
|
#
|
|
# We're creating a bunch of dylibs for the compiler but we're also compiling a
|
|
# bunch of crates.io crates. Everything in the compiler is compiled as an
|
|
# rlib/dylib pair but all crates.io crates tend to just be rlibs. This means
|
|
# we've got a problem for dependency graphs that look like:
|
|
#
|
|
# foo - rustc_codegen_llvm
|
|
# / \
|
|
# rustc ---- rustc_driver
|
|
# \ /
|
|
# foo - rustc_metadata
|
|
#
|
|
# Here the crate `foo` is linked into the `rustc_codegen_llvm` and the
|
|
# `rustc_metadata` dylibs, meaning we've got duplicate copies! When we then
|
|
# go to link `rustc_driver` the compiler notices this and gives us a compiler
|
|
# error.
|
|
#
|
|
# To work around this problem we just add these crates.io dependencies to the
|
|
# `rustc` crate which is a shared dependency above. That way the crate `foo`
|
|
# shows up in the dylib for the `rustc` crate, deduplicating it and allowing
|
|
# crates like `rustc_codegen_llvm` to use `foo` *through* the `rustc` crate.
|
|
#
|
|
# tl;dr; this is not needed to get `rustc` to compile, but if you remove it then
|
|
# later crate stop compiling. If you can remove this and everything
|
|
# compiles, then please feel free to do so!
|
|
flate2 = "1.0"
|
|
tempfile = "3.0"
|