mirror of
https://github.com/dexoron/dcr.git
synced 2026-10-21 21:29:37 +00:00
- `dcr gen` command for IDE integration and build tool support
- `dcr gen project-info`: Output project metadata as JSON
- `dcr gen compile-commands`: Generate `compile_commands.json` for clangd and clang-tidy
- `dcr gen vscode`: Generate VS Code `.vscode/` integration (launch.json, tasks.json, settings.json)
- `dcr gen clion`: Generate JetBrains CLion `.idea/` integration (run configurations, build targets)
- Full workspace support for all `gen` subcommands
47 lines
1.8 KiB
Markdown
47 lines
1.8 KiB
Markdown
# 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).
|
|
- Mixed language builds via `language = ["c", "asm"]` and similar combinations.
|
|
- Three build kinds:
|
|
- `bin` (default)
|
|
- `staticlib`
|
|
- `sharedlib`
|
|
- Optional custom output directory via `build.target`.
|
|
- Optional `build.platform` to pass architecture hints (`-march` / `/arch`).
|
|
- Optional `build.exclude`/`build.include` for source/header selection.
|
|
- Optional `build.roots`/`build.src_disable` to replace the default `src/` root.
|
|
- Optional build steps with `build.steps` and `build.post_steps`.
|
|
- Optional `build.pkg_config` integration.
|
|
- Optional `build.clean` and `build.expect`.
|
|
- Optional `[run].cmd` to override run command.
|
|
- 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 tracks source file timestamps and header dependencies (rebuilds when either source or included headers change).
|
|
- Object files are always created under `target/<profile>/obj/`.
|
|
|
|
## Repository
|
|
|
|
- <https://github.com/dexoron/dcr>
|