veloren/voxygen/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

161 lines
6.2 KiB
TOML

[package]
authors = ["Joshua Barretto <joshua.s.barretto@gmail.com>", "Imbris <imbrisf@gmail.com>"]
default-run = "veloren-voxygen"
edition = "2021"
name = "veloren-voxygen"
version = "0.15.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
[package.metadata.nix]
build = true
app = true
desktopFile = "./assets/voxygen/net.veloren.veloren.desktop"
longDescription = """
Veloren is a multiplayer voxel RPG written in Rust.
It is inspired by games such as Cube World, Legend of Zelda: Breath of the Wild, Dwarf Fortress and Minecraft.
This package includes the official client, Voxygen.
"""
[features]
hot-anim = ["anim/use-dyn-lib"]
hot-egui = ["voxygen-egui/use-dyn-lib", "egui"]
hot-reloading = ["common/hot-reloading"]
singleplayer = ["server"]
simd = ["vek/platform_intrinsics"]
tracy = ["common-frontend/tracy", "client/tracy"]
tracy-memory = ["tracy"] # enables heap profiling with tracy
plugins = ["client/plugins", "common-assets/plugins"]
egui-ui = ["voxygen-egui", "egui", "egui_wgpu_backend", "egui_winit_platform"]
shaderc-from-source = ["shaderc/build-from-source"]
discord = ["discord-sdk"]
bin_img-export = ["common-assets"]
# We don't ship egui with published release builds so a separate feature is required that excludes it.
default-publish = ["singleplayer", "native-dialog", "plugins", "discord", "simd"]
# Temp for bug on current wgpu version that has access violation in vulkan when constructing egui pipeline
default-no-egui = ["default-publish", "hot-reloading", "shaderc-from-source"]
default = ["default-no-egui", "egui-ui"]
[dependencies]
client = {package = "veloren-client", path = "../client"}
common = {package = "veloren-common", path = "../common"}
common-assets = {package = "veloren-common-assets", path = "../common/assets", optional = true} # img-export
common-base = {package = "veloren-common-base", path = "../common/base"}
common-ecs = {package = "veloren-common-ecs", path = "../common/ecs"}
common-frontend = {package = "veloren-common-frontend", path = "../common/frontend"}
common-net = {package = "veloren-common-net", path = "../common/net"}
common-state = {package = "veloren-common-state", path = "../common/state"}
common-systems = {package = "veloren-common-systems", path = "../common/systems"}
anim = {package = "veloren-voxygen-anim", path = "anim"}
i18n = {package = "veloren-client-i18n", path = "../client/i18n"}
i18n-helpers = {package = "veloren-voxygen-i18n-helpers", path = "i18n-helpers"}
voxygen-egui = {package = "veloren-voxygen-egui", path = "egui", optional = true }
# Graphics
winit = {version = "0.28.6", features = ["serde"]}
wgpu = { version = "0.18.0", default-features = false, features = ["trace", "spirv", "glsl"] }
wgpu-profiler = "0.15.0"
bytemuck = { version="1.7", features=["derive"] }
# shaderc = "0.8.0"
# Working around a current bug in shaderc that causes it to use the system installation even if we specify compile from source
shaderc = { git = "https://github.com/pythonesque/shaderc-rs", rev = "f2605a02062834019bedff911aee2fd2998c49f9" }
# cmake crate used by shaderc, newer version 0.1.46 uses a new cmake command that is not available in our CI cmake version
# see https://github.com/alexcrichton/cmake-rs/issues/131
cmake = "=0.1.45"
# 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/Imberflur/iced", tag = "veloren-winit-0.28"}
iced_winit = {git = "https://github.com/Imberflur/iced", tag = "veloren-winit-0.28"}
glyph_brush = "0.7.0"
# https://gitlab.com/Frinksy/keyboard-keynames/-/merge_requests/8
keyboard-keynames = { git = "https://gitlab.com/Imbris/keyboard-keynames.git", tag = "veloren-winit-0.28" }
# EGUI
egui = {version = "0.23", optional = true }
egui_wgpu_backend = { git = "https://github.com/hasenbanck/egui_wgpu_backend.git", rev = "34691d4e9149deb9cd0bb8cbb5a56bffebf47588", optional = true }
egui_winit_platform = { version = "0.20", optional = true }
# ECS
specs = { workspace = true, features = ["serde", "storage-event-control"] }
# Mathematics
vek = { workspace = true }
levenshtein = "1.0.5"
# Controller
gilrs = {version = "0.10.0", features = ["serde-serialize"]}
# Singleplayer
server = { package = "veloren-server", path = "../server", optional = true, default-features = false, features = ["worldgen"] }
# CLI
clap = { workspace = true }
# Utility
assets_manager = {version = "0.11", features = ["ab_glyph"]}
backtrace = "0.3.40"
chrono = { workspace = true }
chumsky = "0.9"
crossbeam-utils = { workspace = true }
crossbeam-channel = { workspace = true }
directories-next = "2.0"
dot_vox = "5.1"
guillotiere = "0.6.2"
hashbrown = { workspace = true }
image = { workspace = true, features = ["ico"]}
lazy_static = { workspace = true }
native-dialog = { version = "0.6.3", optional = true }
num = { workspace = true }
ordered-float = { workspace = true }
rand = { workspace = true }
rand_chacha = { workspace = true }
rayon = { workspace = true }
rodio = {version = "0.15", default-features = false, features = ["vorbis"]}
ron = { workspace = true }
serde = { workspace = true, features = [ "rc" ]}
slab = { workspace = true }
strum = { workspace = true }
tracing = { workspace = true }
treeculler = "0.2"
tokio = { workspace = true, features = ["rt-multi-thread"] }
num_cpus = "1.0"
inline_tweak = { workspace = true }
itertools = { workspace = true }
sha2 = { workspace = true }
# Discord RPC
discord-sdk = { version = "0.3.0", optional = true }
enum-map = { workspace = true }
[target.'cfg(target_os = "macos")'.dependencies]
dispatch = "0.1.4"
[target.'cfg(windows)'.build-dependencies]
winres = "0.1"
[target.'cfg(windows)'.dependencies]
mimalloc = "0.1.29"
# Mumble
[target.'cfg(not(target_os="macos"))'.dependencies]
mumble-link = "0.2.0"
[dev-dependencies]
criterion = { version = "0.5.1", default-features=false, features=["rayon", "cargo_bench_support"]}
world = {package = "veloren-world", path = "../world"}
rayon = { workspace = true }
[[bench]]
harness = false
name = "meshing_benchmark"
[[bin]]
name = "img-export"
required-features = ["bin_img-export"]