cargo-features = ["named-profiles","profile-overrides"]

[workspace]
members = [
	"common",
	"common/net",
	"common/sys",
	"client",
	"plugin/api",
	"plugin/derive",
	"plugin/rt",
	"server",
	"server-cli",
	"voxygen",
	"voxygen/anim",
	"world",
	"network",
]

# 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
incremental = true
# 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-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"]
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

# this profile is used by developers for release profiling
[profile.releasedebuginfo]
inherits =  'release'
debug = 1

[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_intrinsics" }
