mirror of
https://github.com/dexoron/dcr.git
synced 2026-10-21 21:39:36 +00:00
75 lines
1.4 KiB
Markdown
75 lines
1.4 KiB
Markdown
# Build profiles
|
|
|
|
DCR supports two profiles:
|
|
|
|
- `debug` (default)
|
|
- `release`
|
|
|
|
## How to select
|
|
|
|
```sh
|
|
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_DEBUG`
|
|
- `release`: `-O3 -DNDEBUG`
|
|
|
|
### MSVC toolchain
|
|
|
|
- `debug`: `/Od /Zi /W4 /DDCR_DEBUG /Oy-`
|
|
- `release`: `/O2 /DNDEBUG`
|
|
|
|
## Artifacts
|
|
|
|
By default:
|
|
|
|
- `target/debug/<name>` (or `.exe` on Windows)
|
|
- `target/release/<name>` (or `.exe` on Windows)
|
|
|
|
Default compiler flags:
|
|
|
|
GCC/Clang:
|
|
|
|
- `debug`: `-O0 -g -Wall -Wextra -fno-omit-frame-pointer -DDCR_DEBUG`
|
|
- `release`: `-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.
|
|
|
|
```toml
|
|
[build.debug]
|
|
cflags = ["-g3"]
|
|
|
|
[build.release]
|
|
cflags = ["-O3"]
|
|
ldflags = ["-s"]
|
|
```
|