veloren/Cargo.toml
2024-02-06 19:11:10 +01:00

183 lines
5.8 KiB
TOML

cargo-features = ["named-profiles", "profile-overrides"]
[workspace]
resolver = "2"
members = [
"common",
"common/assets",
"common/i18n",
"common/base",
"common/dynlib",
"common/ecs",
"common/net",
"common/state",
"common/systems",
"common/frontend",
"client",
"client/i18n",
"plugin/api",
"plugin/derive",
"plugin/rt",
"rtsim",
"server",
"server/agent",
"server-cli",
"voxygen",
"voxygen/anim",
"voxygen/i18n-helpers",
"voxygen/egui",
"world",
"network",
"network/protocol",
]
# default profile for devs, fast to compile, okay enough to run, no debug information
[profile.dev]
opt-level = 2
overflow-checks = true
debug-assertions = true
panic = "abort"
debug = false
lto = false
incremental = true
# All packages that aren't members of this workspace
[profile.dev.package."*"]
# TODO: seems like opt-level=2 should be sufficient here....
opt-level = 3
[profile.dev.package."veloren-network-protocol"]
opt-level = 3
# this profile is used by developers if dev doesn't has enough debug information,
# the name must != debug, as debug is used by dev because....
[profile.debuginfo]
inherits = 'dev'
debug = true
# used to perform things that do a *lot* of math (i.e. worldgen) but still need reasonable compilation time. Ideally this would also
# add -C target-cpu=native, but I don't think you can set this by profile currently.
[profile.no_overflow]
inherits = 'dev'
overflow-checks = false
debug-assertions = false
[profile.no_overflow.package."veloren-world"]
opt-level = 3
[profile.no_overflow.package."veloren-voxygen-anim"]
opt-level = 3
# this profile is for profiling with using the no_overflow profile, since release can take signifcant times to build.
[profile.no_overflow_debuginfo]
inherits = 'no_overflow'
debug = 1
# this profile is used for veloren releases, compile time doesn't matter
# we need stacktraces, light debug information, as much checks as possible
# I would like to put it in a seperate `official_release` target, but that doesnt share caches with `cargo test` and `cargo bench`
[profile.release]
opt-level = 3
overflow-checks = false
debug-assertions = false
lto = true
debug = false
panic = "abort" # don't need unwinding so we can skip including the landing pads for that
# line tables so we can have useful backtraces for in-house crates
[profile.release.package."veloren-network"]
debug = 1
[profile.release.package."veloren-network-protocol"]
debug = 1
[profile.release.package."veloren-common"]
debug = 1
[profile.release.package."veloren-common-systems"]
debug = 1
[profile.release.package."veloren-client"]
debug = 1
[profile.release.package."veloren-server"]
debug = 1
[profile.release.package."veloren-server-cli"]
debug = 1
[profile.release.package."veloren-voxygen"]
debug = 1
[profile.release.package."veloren-world"]
debug = 1
# used for cargo bench
[profile.bench]
opt-level = 2
incremental = true
# this profile is used by developers for release profiling
[profile.releasedebuginfo]
inherits = 'release'
debug = 1
[workspace.metadata.nix]
systems = ["x86_64-linux"]
[workspace.metadata.nix.cachix]
name = "veloren-nix"
key = "veloren-nix.cachix.org-1:zokfKJqVsNV6kI/oJdLF6TYBdNPYGSb+diMVQPn/5Rc="
[workspace.dependencies]
lazy_static = "1.4.0"
rand = { version = "0.8" }
rand_chacha = { version = "0.3" }
bincode = { version = "1.3.3" }
bitflags = { version = "2.2.1" }
slab = { version = "0.4.2" }
chrono = { version = "0.4.24", default-features=false, features = ["clock", "std", "wasmbind", "serde"] }
chrono-tz = { version = "0.8", features = ["serde"] }
inline_tweak = { version = "1.0.8" }
tokio = { version = "1.28", default-features = false, features = ["rt"] }
tracing = { version = "0.1" }
futures-util = { version = "0.3.7", default-features = false }
prometheus = { version = "0.13", default-features = false}
prometheus-hyper = "0.1.4"
strum = { version = "0.24", features = ["derive"] }
enum-map = { version = "2.4" }
hashbrown = { version = "0.13", features = ["rayon", "serde", "nightly"] }
fxhash = { version = "0.2.1" }
crossbeam-utils = { version = "0.8.1"}
crossbeam-channel = { version = "0.5"}
ordered-float = { version = "3", default-features = true }
num = { version = "0.4" }
num-traits = { version = "0.2" }
vek = { version = "0.15.8", features = ["serde"] }
itertools = { version = "0.10" }
serde = { version = "1.0.118", features = ["derive"] }
serde_json = { version = "1.0.50" }
ron = { version = "0.8", default-features = false}
specs = { version = "0.20", features = ["nightly"] }
image = { version = "0.24", default-features = false, features = ["png"] }
rayon = { version = "1.5" }
clap = { version = "4.2", features = ["derive"]}
[patch.crates-io]
vek = { git = "https://github.com/yoanlcq/vek.git", rev = "84d5cb65841d46599a986c5477341bea4456be26" }
shred = { git = "https://github.com/amethyst/shred.git", rev = "5d52c6fc390dd04c12158633e77591f6523d1f85" }
# This is needed because of an issue with spirv & naga in wgpu 0.18, and there's an issue
# with uint in uniforms for gl.
wgpu = { git = "https://github.com/IsseW/wgpu", rev = "5ea160164" }
# # use the latest fixes in naga (remove when updates trickle down to wgpu-rs)
# naga = { git = "https://github.com/gfx-rs/naga.git", rev = "3a0f0144112ff621dd7f731bf455adf6cab19164" }
# naga = { path = "../naga" }
# keyboard-keynames = { git = "https://gitlab.com/Capucho/keyboard-keynames.git", rev = "7b1375ee4ea01d0e0b80c419cb27f0498e67df3a" }
# # Uncomment this to use a local fork of winit (for testing purposes)
# winit = { path = "../winit" }
# # Uncomment this to use a local fork of wgpu (for testing purposes)
# [patch.'https://github.com/gfx-rs/wgpu']
# wgpu-hal = { path = "../wgpu/wgpu-hal" }
# wgpu-core = { path = "../wgpu/wgpu-core" }
# wgpu-types = { path = "../wgpu/wgpu-types" }
[patch."https://github.com/gfx-rs/naga"]
# naga = { path = "../naga" }