Build Profiles
Profiles allow overriding [build] fields for specific build modes.
Configuration
[build]
language = "c"
standard = "c17"
cflags = ["-Wall"]
[build.debug]
cflags = ["-O0", "-g"]
[build.release]
cflags = ["-O3", "-DNDEBUG"]
Merge rules
Fields from [build.<profile>] are merged on top of [build]:
- Scalar fields (strings, numbers, bools) — replaced
- Arrays (
cflags,ldflags, ...) — appended (extend the[build]array)
Set inherit = false to disable array inheritance (only profile's own arrays are used).
Built-in profiles
| Profile | Default cflags |
|---|---|
debug | -O0 -g -Wall -Wextra -fno-omit-frame-pointer -DDCR_DEBUG |
release | -O3 -DNDEBUG |
Target-specific profiles
[build.linux]
cflags = ["-DLINUX"]
[build.windows.debug]
cflags = ["-DWIN32", "-O0", "-g"]
Application order (highest priority first):
[build.<target>.<profile>][build.<profile>.<target>][build.<target>][build.<profile>][build]