Files
czkawka/Cargo.toml
2025-08-17 22:38:16 +02:00

56 lines
1.8 KiB
TOML

[workspace]
members = [
"czkawka_core",
"czkawka_cli",
"czkawka_gui",
"krokiet"
]
exclude = [
"misc/test_read_perf",
"misc/test_image_perf",
"misc/test_compilation_speed_size",
"ci_tester",
]
resolver = "3"
[profile.release]
# panic = "unwind" in opposite to "abort", allows to catch panic!()
# Since Czkawka parse different types of files with few libraries, it is possible
# that some files will cause crash, so at this moment I don't recommend to use "abort"
# until you are ready to occasional crashes
panic = "unwind"
# Should find more panics, that now are hidden from user - in long term it should decrease bugs in app
# It may cause some crashes, that are not handled via panic::catch_unwind, so feel free to disable it, if you want
overflow-checks = true
# LTO setting is disabled by default, because release mode is usually needed to develop app and compilation with LTO would take a lot of time
# But it is used to optimize release builds(and probably also in CI, where time is not so important as in local development)
# Fat lto, generates a lot smaller executable than thin lto
# Also using codegen-units = 1, to generate smaller binaries
#lto = "fat"
#codegen-units = 1
# Optimize all dependencies except application/workspaces, even in debug builds to get reasonable performance e.g. when opening images
[profile.dev.package."*"] # OPT PACKAGES
opt-level = 3 # OPT PACKAGES
[profile.fast_release]
inherits = "release"
incremental = true
overflow-checks = true
[profile.test]
debug-assertions = true # Forces to crash when there is duplicated item in cli
overflow-checks = true
opt-level = 3
# Unsafe profile, just to check, how fast and small app could be
[profile.fastest]
inherits = "release"
panic = "abort"
lto = "thin"
strip = "symbols"
codegen-units = 1
opt-level = 3
debug = false