[package]
name = "resolc"
version = "0.5.0"
license.workspace = true
edition.workspace = true
repository.workspace = true
authors = [
    "Oleksandr Zarudnyi <a.zarudnyy@matterlabs.dev>",
    "Cyrill Leutwiler <cyrill@parity.io>",
]
description = "Solidity frontend for the revive compiler"

[[bin]]
name = "resolc"
path = "src/resolc/main.rs"

[lib]
doctest = false

[dependencies]
anyhow = { workspace = true }
clap = { workspace = true }
hex = { workspace = true }
inkwell = { workspace = true }
log = { workspace = true }
once_cell = { workspace = true }
path-slash = { workspace = true }
rayon = { workspace = true, optional = true }
semver = { workspace = true }
serde = { workspace = true }
serde_json = { workspace = true }
which = { workspace = true }
normpath = { workspace = true }

revive-common = { workspace = true }
revive-llvm-context = { workspace = true }
revive-solc-json-interface = { workspace = true, features = ["resolc"] }
revive-yul = { workspace = true }

[target.'cfg(target_env = "musl")'.dependencies]
mimalloc = { version = "0.1.46", default-features = false }

[target.'cfg(target_os = "emscripten")'.dependencies]
libc = { workspace = true }
inkwell = { workspace = true, features = ["target-riscv", "llvm18-1-no-llvm-linking"]}

[build-dependencies]
git2 = { workspace = true, default-features = false }

[dev-dependencies]
criterion = { workspace = true }
tempfile = { workspace = true }

[features]
parallel = ["rayon", "revive-solc-json-interface/parallel"]
default = ["parallel"]

[[bench]]
name = "compile"
harness = false
