Skip to main content

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

ProfileDefault 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):

  1. [build.<target>.<profile>]
  2. [build.<profile>.<target>]
  3. [build.<target>]
  4. [build.<profile>]
  5. [build]