-[package]
-authors = ["Scott Olson <scott@solson.me>"]
-description = "An experimental interpreter for Rust MIR."
-license = "MIT/Apache-2.0"
-name = "miri"
-repository = "https://github.com/solson/miri"
-version = "0.1.0"
+[workspace]
+members = [
+ "src/bootstrap",
+ "src/rustc",
+ "src/libstd",
+ "src/libtest",
+ "src/librustc_codegen_llvm",
+ "src/tools/cargotest",
+ "src/tools/clippy",
+ "src/tools/compiletest",
+ "src/tools/error_index_generator",
+ "src/tools/linkchecker",
+ "src/tools/rustbook",
+ "src/tools/unstable-book-gen",
+ "src/tools/tidy",
+ "src/tools/build-manifest",
+ "src/tools/remote-test-client",
+ "src/tools/remote-test-server",
+ "src/tools/rust-installer",
+ "src/tools/cargo",
+ "src/tools/rustdoc",
+ "src/tools/rls",
+ "src/tools/rustfmt",
+ "src/tools/miri",
+ "src/tools/rustdoc-themes",
+]
+exclude = [
+ "src/tools/rls/test_data",
+]
-[[bin]]
-doc = false
-name = "miri"
-test = false
+# Curiously, LLVM 7.0 will segfault if compiled with opt-level=3
+# See issue https://github.com/rust-lang/rust/issues/52378
+[profile.release]
+opt-level = 2
+[profile.bench]
+opt-level = 2
-[lib]
-test = false
+# These options are controlled from our rustc wrapper script, so turn them off
+# here and have them controlled elsewhere.
+[profile.dev]
+debug = false
+debug-assertions = false
+[profile.test]
+debug = false
+debug-assertions = false
-[dependencies]
-#byteorder = "0.4.2"
-byteorder = { git = "https://github.com/quininer/byteorder.git", branch = "i128", features = ["i128"]}
-env_logger = "0.3.3"
-log = "0.3.6"
-log_settings = "0.1.1"
+# 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" }
-[dev-dependencies]
-compiletest_rs = "0.2.5"
+[patch.crates-io]
+# 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" }
+
+# 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' }
+
+[patch."https://github.com/rust-lang-nursery/rust-clippy"]
+clippy_lints = { path = "src/tools/clippy/clippy_lints" }
+rustc_tools_util = { path = "src/tools/clippy/rustc_tools_util" }