[workspace]
resolver = "2"
members = ["crates/*"]

[workspace.package]
version = "0.1.0"
authors = [
    "Cyrill Leutwiler <cyrill@parity.io>",
    "Parity Technologies <admin@parity.io>",
]
license = "MIT/Apache-2.0"
edition = "2021"
repository = "https://github.com/paritytech/revive"
rust-version = "1.85.0"

[workspace.dependencies]
lld-sys = { version = "0.1.0", path = "crates/lld-sys" }
resolc = { version = "0.5.0", path = "crates/resolc", default-features = false }
revive-benchmarks = { version = "0.1.0", path = "crates/benchmarks" }
revive-build-utils = { version = "0.2.0", path = "crates/build-utils" }
revive-builtins = { version = "0.1.0", path = "crates/builtins" }
revive-common = { version = "0.2.1", path = "crates/common" }
revive-differential = { version = "0.2.0", path = "crates/differential" }
revive-explorer = { version = "0.1.0", path = "crates/explore" }
revive-integration = { version = "0.3.0", path = "crates/integration" }
revive-linker = { version = "0.2.0", path = "crates/linker" }
revive-llvm-context = { version = "0.5.0", path = "crates/llvm-context" }
revive-runner = { version = "0.3.0", path = "crates/runner" }
revive-runtime-api = { version = "0.4.0", path = "crates/runtime-api" }
revive-solc-json-interface = { version = "0.4.0", path = "crates/solc-json-interface", default-features = false }
revive-stdlib = { version = "0.2.0", path = "crates/stdlib" }
revive-yul = { version = "0.4.0", path = "crates/yul" }

hex = "0.4.3"
cc = "1.2"
libc = "0.2.172"
tempfile = "3.23"
anyhow = "1.0"
semver = { version = "1.0", features = ["serde"] }
itertools = "0.14"
serde = { version = "1.0", features = ["derive"] }
serde_json = { version = "1.0", features = ["arbitrary_precision"] }
regex = "1.12"
once_cell = "1.21"
num = "0.4.3"
sha1 = "0.10"
sha3 = "0.10"
thiserror = "2.0"
which = "8.0"
path-slash = "0.2"
rayon = "1.11"
clap = { version = "4", default-features = false, features = ["derive"] }
polkavm-common = "0.30.0"
polkavm-linker = "0.30.0"
polkavm-disassembler = "0.30.0"
polkavm = "0.30.0"
alloy-primitives = { version = "1.4", features = ["serde"] }
alloy-sol-types = "1.4"
alloy-genesis = "1.1.2"
alloy-serde = "1.1"
env_logger = { version = "0.11.8", default-features = false }
serde_stacker = "0.1.14"
criterion = { version = "0.7", features = ["html_reports"] }
log = { version = "0.4.28" }
git2 = { version = "0.20.2", default-features = false }
downloader = "0.2.8"
flate2 = "1.1"
fs_extra = "1.3"
num_cpus = "1"
tar = "0.4"
toml = "0.9"
assert_cmd = "2"
assert_fs = "1.1"
normpath = "1.5"

# polkadot-sdk and friends
codec = { version = "3.7.5", default-features = false, package = "parity-scale-codec" }
scale-info = { version = "2.11.6", default-features = false }
polkadot-sdk = { version = "2509.0.0" }

# llvm
[workspace.dependencies.inkwell]
version = "0.6.0"
default-features = false
features = ["serde", "llvm18-1", "no-libffi-linking", "target-riscv"]

[profile.bench]
inherits = "release"
lto = true
codegen-units = 1
