[workspace]
members = [
    "allocator",
    "allocator/mimalloc-sys",
    "compiler/qsc",
    "compiler/qsc_ast",
    "compiler/qsc_circuit",
    "compiler/qsc_codegen",
    "compiler/qsc_data_structures",
    "compiler/qsc_doc_gen",
    "compiler/qsc_eval",
    "compiler/qsc_fir",
    "compiler/qsc_frontend",
    "compiler/qsc_hir",
    "compiler/qsc_linter",
    "compiler/qsc_lowerer",
    "compiler/qsc_parse",
    "compiler/qsc_partial_eval",
    "compiler/qsc_passes",
    "compiler/qsc_project",
    "compiler/qsc_qasm",
    "compiler/qsc_rir",
    "fuzz",
    "katas",
    "language_service",
    "library",
    "pip",
    "resource_estimator",
    "samples_test",
    "wasm",
]
resolver = "2"

[workspace.package]
authors = ["Microsoft"]
homepage = "https://github.com/microsoft/qsharp"
repository = "https://github.com/microsoft/qsharp"
edition = "2021"
license = "MIT"
version = "0.0.0"

[workspace.dependencies]
bitflags = "2.4"
clap = "4.4"
criterion = { version = "0.5", default-features = false }
difference = "2.0"
enum-iterator = "2.1"
env_logger = "0.11"
expect-test = "1.4"
futures = "0.3"
futures-util = "0.3"
fasteval = "0.2"
getrandom = "0.2"
indoc = "2.0"
js-sys = "0.3"
libfuzzer-sys = "0.4"
log = "0.4"
miette = { version = "7.2" }
thiserror = "1.0"
nalgebra = { version = "0.33" }
ndarray = "0.15.4"
num-bigint = "0.4"
num-complex = "0.4"
num-traits = "0.2"
probability = "0.20"
indenter = "0.3"
regex-lite = "0.1"
rustc-hash = "1"
serde = { version = "1.0", features = [ "derive" ] }
serde-wasm-bindgen = "0.6"
wasm-bindgen = "0.2.100"
wasm-bindgen-futures = "0.4"
rand = "0.8"
serde_json = "1.0"
pyo3 = "0.24"
quantum-sparse-sim = { git = "https://github.com/qir-alliance/qir-runner", rev = "c84d511f074cd93f3f800fde9e7a6296045f3aea" }
async-trait = "0.1"
tokio = { version = "1.44", features = ["macros", "rt"] }

[workspace.lints.clippy]
mod_module_files = "warn"
pedantic = { level = "warn", priority = -1 }
unwrap_used = "warn"
missing_errors_doc = "allow"
missing_panics_doc = "allow"
module_name_repetitions = "allow"
needless_raw_string_hashes = "allow"
unnecessary_wraps = "allow"
default_trait_access = "allow"
enum_glob_use = "allow"

[profile.release]
debug = "limited"
strip = "symbols"
lto = "fat"
codegen-units = 1

[profile.release.package.fuzz]
codegen-units = 16
