Files
dcr/docs
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
..
2026-03-06 21:58:54 +08:00
2026-03-06 21:58:54 +08:00
2026-03-03 22:25:00 +08:00
2026-03-06 21:58:54 +08:00
2026-03-06 21:58:54 +08:00
2026-03-06 21:58:54 +08:00
2026-02-26 18:09:07 +08:00

Introduction

DCR (Dexoron Cargo Realization) is a Cargo-style CLI for C/C++ projects.

Current DCR focuses on a simple, predictable workflow:

  • create or initialize a project (dcr new, dcr init)
  • build with debug or release profiles (dcr build)
  • run binaries (dcr run)
  • clean artifacts (dcr clean)
  • update the installed binary (dcr --update)

What is implemented in this version

  • Project configuration in dcr.toml with [package], [build], [dependencies].
  • Recursive source discovery in src/:
    • C: *.c
    • C++: *.cpp, *.cxx, *.cc
  • Compiler selection from dcr.toml (clang, gcc, cl, clang-cl, etc.).
  • ASM support via language = "asm" (GCC/Clang, NASM, GAS).
  • Three build kinds:
    • bin (default)
    • staticlib
    • sharedlib
  • Optional custom output directory via build.target.
  • Optional build.platform to pass architecture hints (-march / /arch).
  • Workspace builds via [workspace] with per-project dcr.toml.
  • Path dependencies with include/lib resolution and dcr.lock generation.

Important behavior notes

  • dcr.toml is required for build, run, and clean.
  • run works only with build.kind = "bin".
  • Incremental rebuild currently tracks source file timestamps (not header dependency graphs).
  • Object files are always created under target/<profile>/obj/.

Repository