[package]
name = "jackpotminer"
version = "0.1.0"
edition = "2021"
description = "A GPU-accelerated Equihash 192,7 miner (ZClassic and other 192,7 coins)"

[dependencies]
blake2b_simd = "1"
sha2 = "0.10"
serde = { version = "1", features = ["derive"] }
serde_json = "1"
toml = "0.8"
hex = "0.4"
rayon = "1"
num_cpus = "1"
core_affinity = "0.8"
clap = { version = "4", features = ["derive"] }
log = "0.4"
env_logger = "0.11"
anyhow = "1"
ctrlc = "3"
socket2 = "0.5"
ocl = { version = "0.19", optional = true }
ratatui = "0.30.0"
eframe = { version = "0.28", optional = true }

[features]
default = ["gpu", "cuda", "config-gui"]
gpu = ["dep:ocl"]
# CUDA backend: drives miniZ's embedded Equihash 192,7 fatbin via the CUDA driver
# API. build.rs only links libcuda (no nvcc / kernel compilation needed).
cuda = []
# Optional native GUI config editor (the `jackpotminer-config` binary). Off by
# default so the miner never pulls in the GUI toolkit.
config-gui = ["dep:eframe"]

# The GUI config editor is a separate binary, built only with --features config-gui.
[[bin]]
name = "jackpotminer-config"
path = "src/config_gui.rs"
required-features = ["config-gui"]

[profile.release]
opt-level = 3
lto = true
codegen-units = 1
panic = "abort"
