Files
dcr/docs/commands/dcr-build.md
Dexoron 4ea6267a88 Added:
- Workspace support (`[workspace]` with deps ordering)
- `clean --all` for workspace members
Changed:
- Project root discovery for `build/run/clean` (searches parent dirs)
- Workspace paths are excluded from root source scan
- Build output now uses a Cargo-style `Compiling <name> v<version>` line
- Build time now reports total time for the whole build stage (workspace included)
- Cache hits are silent (no compile line when nothing is rebuilt)
- Safer build cache: fingerprints include headers and resolved library files
2026-03-06 21:58:54 +08:00

1.1 KiB

dcr build

Builds the project in debug or release profile.

Usage

dcr build
dcr build --debug
dcr build --release

What build does

  1. Checks that dcr.toml exists and is valid.
  2. Reads build settings from [build].
  3. Resolves path dependencies from [dependencies].
  4. Creates required output directories.
  5. Recursively compiles sources from src/.
  6. Links final artifact (binary or library).

Config values used

  • package.name
  • build.compiler
  • build.language
  • build.standard
  • build.kind
  • build.target
  • build.platform
  • build.cflags
  • build.ldflags

Source selection

  • language = "c" -> *.c
  • language = "c++" | "cpp" | "cxx" -> *.cpp, *.cxx, *.cc
  • language = "asm" -> *.s, *.S, *.asm

Notes

  • The profile is selected from the first argument only.
  • Unknown profile flags return an error.
  • Incremental rebuild is based on source/object mtime comparison.
  • For language = "asm" with compiler = "as"/"gas", use .s files (no preprocessing). For .S, use gcc or clang.
  • In workspace root, dcr build builds all members in dependency order.