mirror of
https://github.com/dexoron/dcr.git
synced 2026-10-21 17:09:35 +00:00
- 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
47 lines
1.1 KiB
Markdown
47 lines
1.1 KiB
Markdown
# dcr build
|
|
|
|
Builds the project in `debug` or `release` profile.
|
|
|
|
## Usage
|
|
|
|
```sh
|
|
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.
|