cargo-features = ["named-profiles","profile-overrides"] [workspace] members = [ "common", "common/base", "common/ecs", "common/net", "common/state", "common/systems", "common/frontend", "client", "plugin/api", "plugin/derive", "plugin/rt", "server", "server-cli", "voxygen", "voxygen/anim", "voxygen/anim/dyn", "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 codegen-units = 8 lto = false # TEMP false to avoid fingerprints bug incremental = false # All dependencies (but not this crate itself) [profile.dev.package."*"] opt-level = 3 [profile.dev.package."veloren-network"] opt-level = 2 [profile.dev.package."veloren-network-protocol"] opt-level = 3 [profile.dev.package."veloren-common"] opt-level = 2 [profile.dev.package."veloren-client"] opt-level = 2 [profile.dev.package."veloren-server"] opt-level = 2 [profile.dev.package."veloren-server-cli"] opt-level = 2 [profile.dev.package."veloren-voxygen"] incremental = true opt-level = 2 [profile.dev.package."veloren-world"] opt-level = 2 [profile.no_overflow.package."veloren-world"] opt-level = 3 [profile.no_overflow.package."veloren-voxygen-anim"] 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 # 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 # 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"] buildInputs = ["libudev", "alsaLib", "openssl", "xorg.libxcb", "libxkbcommon"] nativeBuildInputs = ["pkg-config", "python3", "binutils"] runtimeLibs = ["libGL", "xorg.libX11", "xorg.libXcursor", "xorg.libXrandr", "xorg.libXi"] [workspace.metadata.nix.cachix] name = "veloren-nix" key = "veloren-nix.cachix.org-1:zokfKJqVsNV6kI/oJdLF6TYBdNPYGSb+diMVQPn/5Rc=" [patch.crates-io] # macos CI fix isn't merged yet winit = { git = "https://gitlab.com/veloren/winit.git", branch = "macos-test-spiffed" } vek = { git = "https://gitlab.com/veloren/vek.git", branch = "fix_intrinsics2" } # patch wgpu so we can use wgpu-profiler crate wgpu = { git = "https://github.com/gfx-rs/wgpu-rs.git", rev = "d44fc6ff855faf37b63fd711a9f9a916256cedc2" } # patch gfx-hal for the dx12 backend patch for cube sampling [patch."https://github.com/gfx-rs/gfx"] gfx-hal = { path = "../gfx/src/hal" } gfx-backend-empty = { path = "../gfx/src/backend/empty" } gfx-backend-vulkan = { path = "../gfx/src/backend/vulkan" } gfx-backend-gl = { path = "../gfx/src/backend/gl" } gfx-backend-dx12 = { path = "../gfx/src/backend/dx12" } gfx-backend-dx11 = { path = "../gfx/src/backend/dx11" } gfx-backend-metal = { path = "../gfx/src/backend/metal" } # # Uncomment this to use a local fork of wgpu (for testing purposes) # [patch.'https://github.com/gfx-rs/wgpu'] # wgpu-core = { path = "../wgpu/wgpu-core" } # wgpu-types = { path = "../wgpu/wgpu-types" }