[package]
name = "veloren-common"
version = "0.10.0"
authors = ["Joshua Barretto <joshua.s.barretto@gmail.com>", "Maciej Ćwięka <mckol363@gmail.com>", "Imbris <imbrisf@gmail.com>"]
edition = "2021"

[features]
no-assets = []
hot-reloading = ["common-assets/hot-reloading"]
simd = ["vek/platform_intrinsics"]
bin_csv = ["ron", "csv", "structopt"]
bin_graphviz = ["petgraph"]
bin_cmd_doc_gen = []
bin_asset_migrate = ["ron"]
rrt_pathfinding = ["kiddo"]
calendar_events = []

default = ["simd"]

[dependencies]

common-base = { package = "veloren-common-base", path = "base" }
# inline_tweak = "1.0.8"

# Serde
serde = { version = "1.0.110", features = ["derive", "rc"] }

# Util
enum-iterator = "0.7"
vek = { version = "0.15.8", features = ["serde"] }
chrono = "0.4"
chrono-tz = "0.6"
sha2 = "0.10"
serde_json = "1.0.50"

# Strum
strum = { version = "0.24", features = ["derive"] }

[target.'cfg(not(target_arch = "wasm32"))'.dependencies]
approx = "0.4.0"
clap = "2.33"
crossbeam-utils = "0.8.1"
bitflags = "1.2"
crossbeam-channel = "0.5"
lazy_static = "1.4.0"
num-derive = "0.3"
num-traits = "0.2"
ordered-float = { version = "2.0.1", default-features = false }
rayon = "1.5"
roots = "0.0.6"
spin_sleep = "1.0"
tracing = { version = "0.1", default-features = false }
uuid = { version = "0.8.1", default-features = false, features = ["serde", "v4"] }
rand = "0.8"
fxhash = "0.2.1"

# Assets
common-assets = {package = "veloren-common-assets", path = "assets"}
dot_vox = "4.0"

# Assets
serde_repr = "0.1.6"

# csv import
ron = { version = "0.7", default-features = false, optional = true }
# csv export
csv = { version = "1.1.3", optional = true }
structopt = { version = "0.3.13", optional = true }
# graphviz exporters
petgraph = { version = "0.6", optional = true }
# K-d trees used for RRT pathfinding
kiddo = { version = "0.1", optional = true }

# Data structures
hashbrown = { version = "0.11", features = ["rayon", "serde", "nightly"] }
slotmap = { version = "1.0", features = ["serde"] }
indexmap = { version = "1.3.0", features = ["rayon"] }
slab = "0.4.2"

# ECS
specs = { git = "https://github.com/amethyst/specs.git", features = ["serde", "storage-event-control", "nightly"], rev = "f985bec5d456f7b0dd8aae99848f9473c2cd9d46" }
specs-idvs = { git = "https://gitlab.com/veloren/specs-idvs.git", rev = "8be2abcddf8f524cb5876e8dd20a7e47cfaf7573" }

[dev-dependencies]
#bench
criterion = "0.3"

#test
tracing-subscriber = { version = "0.3.7", default-features = false, features = ["fmt", "time", "ansi", "smallvec", "env-filter"] }
petgraph = "0.6.0"

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

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

[[bin]]
name = "csv_export"
required-features = ["bin_csv"]

[[bin]]
name = "csv_import"
required-features = ["bin_csv"]

[[bin]]
name = "asset_migrate"
required-features = ["bin_asset_migrate"]

[[bin]]
name = "recipe_graphviz"
required-features = ["bin_graphviz"]

[[bin]]
name = "cmd_doc_gen"
required-features = ["bin_cmd_doc_gen"]
