veloren/Cargo.toml
Christof Petig 3e0ca7d6d4 Load missing plugins from the server
individual commits combined here:
send active plugins
compute plugin sha hash
single position for defining Hash type
request plugins from the server
Server sending the plugin to the client
store received plugin in file and use it
handle plugin data at the right place
pass config_dir to client init
load local plugins
operational plugin caching
simplify the interface
clippy suggestions
remove artifacts
fix compilation of test world
ChangeLog entry
code quality fixes
improve readability
adapt to multiple systems
2024-03-14 00:46:18 +01:00

182 lines
5.7 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",
"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.16.1", 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"]}
async-trait = "0.1.42"
sha2 = "0.10"
hex = "0.4.3"
[patch.crates-io]
shred = { git = "https://github.com/amethyst/shred.git", rev = "5d52c6fc390dd04c12158633e77591f6523d1f85" }
# This is needed because of:
# * an issue with spirv & naga in wgpu 0.18 (I assume this is fixed upstream but not in 0.18)
# * an issue with uint in uniforms for gl. (potentially fixed in 0.19?)
# * an issue with releasing current context on Windows opengl (fixed in 0.19.1)
# * another spirv issue: unused builtins not always being removed. (upstream PR open)
wgpu = { git = "https://github.com/Imberflur/wgpu.git", tag = "0.18-with-fixes-for-veloren-v1" }
# wgpu = { path = "../wgpu/wgpu" }
# 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" }
# naga = { path = "../wgpu/naga" }