[package] authors = [ "Joshua Barretto ", "Imbris ", ] default-run = "veloren-voxygen" edition = "2021" name = "veloren-voxygen" version = "0.16.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", "server/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" } # 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.7.0", optional = true } num = { workspace = true } ordered-float = { workspace = true } rand = { workspace = true } rand_chacha = { workspace = true } rayon = { workspace = true } rodio = { version = "0.18", default-features = false, features = ["vorbis"] } ron = { workspace = true } serde = { workspace = true, features = ["rc"] } slab = { workspace = true } strum = { workspace = true } tracing = { workspace = true } treeculler = "0.4" tokio = { workspace = true, features = ["rt-multi-thread"] } num_cpus = "1.0" inline_tweak = { workspace = true } itertools = { workspace = true } sha2 = { workspace = true } bitflags = { workspace = true, features = ["serde"] } # 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(target_family = "windows")'.build-dependencies] winres = "0.1" [target.'cfg(target_family = "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"]