[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/rust-lang/miri"
version = "0.1.0"
default-run = "miri"
edition = "2018"

[lib]
test = true # we have unit tests
doctest = false # but no doc tests

[[bin]]
name = "miri"
test = false # we have no unit tests
doctest = false # and no doc tests

[[bin]]
name = "cargo-miri"
test = false # we have no unit tests
doctest = false # and no doc tests
required-features = ["cargo_miri"]

[[bin]]
name = "miri-rustc-tests"
test = false # we have no unit tests
doctest = false # and no doc tests
required-features = ["rustc_tests"]

[dependencies]
cargo_metadata = { version = "0.9.0", optional = true }
directories = { version = "2.0", optional = true }
rustc_version = { version = "0.2.3", optional = true }
serde_json = { version = "1.0.40", optional = true }

getrandom = { version = "0.1.8", features = ["std"] }
byteorder = "1.3"
env_logger = "0.7.1"
log = "0.4"
shell-escape = "0.1.4"
hex = "0.4.0"
rand = "0.7"

# A noop dependency that changes in the Rust repository, it's a bit of a hack.
# See the `src/tools/rustc-workspace-hack/README.md` file in `rust-lang/rust`
# for more information.
rustc-workspace-hack = "1.0.0"

# Some extra dependency for better feature control to avoid having to rebuild
# between "cargo build" and "cargo intall".
num-traits = "*"
serde = { version = "*", features = ["derive"] }

[build-dependencies]
vergen = "3"

[dev-dependencies]
compiletest_rs = { version = "0.5", features = ["tmp"] }
colored = "1.6"

[features]
default = ["cargo_miri"]
cargo_miri = ["cargo_metadata", "directories", "rustc_version", "serde_json"]
rustc_tests = []