mirror of
https://github.com/dexoron/dcr.git
synced 2026-10-21 11:38:30 +00:00
1.4 KiB
1.4 KiB
Build profiles
DCR supports two profiles:
debug(default)release
How to select
dcr build --debug
dcr build --release
dcr run --release
dcr clean --debug
You can also add --force or --clean to build/run.
Default profile flags
GCC/Clang-like toolchains
debug:-O0 -g -Wall -Wextra -fno-omit-frame-pointer -DDCR_DEBUGrelease:-O3 -DNDEBUG
MSVC toolchain
debug:/Od /Zi /W4 /DDCR_DEBUG /Oy-release:/O2 /DNDEBUG
Artifacts
By default:
target/debug/<name>(or.exeon Windows)target/release/<name>(or.exeon Windows)
Default compiler flags:
GCC/Clang:
debug:-O0 -g -Wall -Wextra -fno-omit-frame-pointer -DDCR_DEBUGrelease:-O3 -DNDEBUG
MSVC:
debug:/Od /Zi /W4 /DDCR_DEBUG /Oy-release:/O2 /DNDEBUG
Static library mode (kind = "staticlib"):
- Linux/macOS:
lib<name>.a - Windows:
<name>.lib
Shared library mode (kind = "sharedlib"):
- Linux:
lib<name>.so - macOS:
lib<name>.dylib - Windows:
<name>.dll
Profile overrides
Use [build.debug] and [build.release] to override build settings per profile.
All values inherit from [build]. If a field is present in the profile table, it replaces the base value.
For arrays (like cflags/ldflags), the profile value is appended to the base array.
[build.debug]
cflags = ["-g3"]
[build.release]
cflags = ["-O3"]
ldflags = ["-s"]