[package]
authors = ["Joshua Barretto <joshua.s.barretto@gmail.com>", "Imbris <imbrisf@gmail.com>"]
default-run = "veloren-voxygen"
edition = "2018"
name = "veloren-voxygen"
version = "0.8.0"
# Cargo thinks it should build the voxygen binary even when a specific bench is specified for building
# Uncomment below and comment out default-run if you want to avoid this
# autobins = false

[features]
gl = ["gfx_device_gl", "gfx_gl"]
hot-anim = ["anim/use-dyn-lib"]
singleplayer = ["server"]
simd = ["vek/platform_intrinsics"]
tracy = ["tracing-tracy", "common/tracy"]
plugins = ["client/plugins"]

default = ["gl", "singleplayer", "native-dialog", "plugins", "simd"]

[dependencies]
client = {package = "veloren-client", path = "../client"}
common = {package = "veloren-common", path = "../common"}
common-net = {package = "veloren-common-net", path = "../common/net"}
common-sys = {package = "veloren-common-sys", path = "../common/sys"}

anim = {package = "veloren-voxygen-anim", path = "anim", default-features = false}

# Graphics
gfx = "0.18.2"
gfx_device_gl = {version = "0.16.2", optional = true}
gfx_gl = {version = "0.6.1", optional = true}
glutin = "0.26.0"
old_school_gfx_glutin_ext = "0.26"
winit = {version = "0.24.0", features = ["serde"]}

# Ui
conrod_core = {git = "https://gitlab.com/veloren/conrod.git", branch="copypasta_0.7"}
conrod_winit = {git = "https://gitlab.com/veloren/conrod.git", branch="copypasta_0.7"}
euc = "=0.5.0"
iced = {package = "iced_native", git = "https://github.com/hecrj/iced", rev = "8d882d787e6b7fd7c2435f42f82933e2ed904edf"}
iced_winit = {git = "https://github.com/hecrj/iced", rev = "8d882d787e6b7fd7c2435f42f82933e2ed904edf"}
window_clipboard = "0.1.1"
glyph_brush = "0.7.0"

# ECS
specs = {git = "https://github.com/amethyst/specs.git", rev = "d4435bdf496cf322c74886ca09dd8795984919b4"}
specs-idvs = { git = "https://gitlab.com/veloren/specs-idvs.git", rev = "9fab7b396acd6454585486e50ae4bfe2069858a9" }

# Mathematics
vek = {version = "=0.12.0", features = ["serde"]}

# Controller
gilrs = {version = "0.8.0", features = ["serde-serialize"]}

# Singleplayer
server = {package = "veloren-server", path = "../server", optional = true}

# Utility
backtrace = "0.3.40"
bincode = "1.3.1"
chrono = "0.4.9"
cpal = "0.13"
copy_dir = "0.1.2"
crossbeam = "0.8.0"
deunicode = "1.0"
# TODO: remove
directories-next = "2.0"
dot_vox = "4.0"
enum-iterator = "0.6"
glsl-include = "0.3.1"
guillotiere = "0.6"
hashbrown = {version = "0.9", features = ["rayon", "serde", "nightly"]}
image = {version = "0.23.12", default-features = false, features = ["ico", "png"]}
lazy_static = "1.4.0"
native-dialog = { version = "0.5.2", optional = true }
num = "0.3.1"
ordered-float = { version = "2.0.1", default-features = false }
rand = "0.8"
rodio = {version = "0.13", default-features = false, features = ["wav", "vorbis"]}
ron = {version = "0.6", default-features = false}
serde = {version = "1.0", features = [ "rc", "derive" ]}
treeculler = "0.1.0"
uvth = "3.1.1"
tokio = { version = "1", default-features = false, features = ["rt-multi-thread"] }
num_cpus = "1.0"
# vec_map = { version = "0.8.2" }
inline_tweak = "1.0.2"
itertools = "0.10.0"

# Tracy
tracing-tracy = { version = "0.4.0", optional = true }

# Logging
termcolor = "1.1"
tracing = "0.1"
tracing-appender = "0.1"
tracing-log = "0.1.1"
tracing-subscriber = {version = "0.2.3", default-features = false, features = ["env-filter", "fmt", "chrono", "ansi", "smallvec", "tracing-log"]}

[target.'cfg(target_os = "macos")'.dependencies]
dispatch = "0.1.4"
# This needs to be backdated for the OSX build, potentially because the SDK is not OSX 11.0 compatible yet.
# This line should be removed when possible because coreaudio-sys is not a direct dep of voxygen.
coreaudio-sys = { version = "=0.2.5", default-features = false }

[target.'cfg(windows)'.build-dependencies]
winres = "0.1"

[dev-dependencies]
criterion = "0.3"
git2 = "0.13"
world = {package = "veloren-world", path = "../world"}

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