mirror of
https://github.com/dexoron/dcr.git
synced 2026-10-21 10:58:29 +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
53 lines
1.3 KiB
Markdown
53 lines
1.3 KiB
Markdown
# Config reference
|
|
|
|
## Full schema
|
|
|
|
```toml
|
|
[package]
|
|
name = "string" # required
|
|
version = "string" # required
|
|
|
|
[build]
|
|
language = "c|c++|cpp|cxx|asm" # required
|
|
standard = "string" # required
|
|
compiler = "string" # required
|
|
kind = "bin|staticlib|sharedlib" # required
|
|
target = "string" # optional
|
|
platform = "string" # optional
|
|
cflags = ["string", "..."] # optional
|
|
ldflags = ["string", "..."] # optional
|
|
|
|
[toolchain]
|
|
cc = "string" # optional
|
|
cxx = "string" # optional
|
|
as = "string" # optional
|
|
ar = "string" # optional
|
|
ld = "string" # optional
|
|
|
|
[workspace]
|
|
name = { path = "string", deps = ["string", "..."] }
|
|
|
|
[dependencies]
|
|
name = {
|
|
path = "string", # required for each dependency
|
|
include = ["string", "..."], # optional
|
|
lib = ["string", "..."], # optional
|
|
libs = ["string", "..."], # optional
|
|
}
|
|
```
|
|
|
|
## Validation rules
|
|
|
|
- `[package]`, `[build]`, `[dependencies]` must exist.
|
|
- Required string fields must be non-empty.
|
|
- `build.kind` must be `bin`, `staticlib`, or `sharedlib`.
|
|
- Dependency fields `include/lib/libs` must be string arrays when provided.
|
|
|
|
## Generated defaults (`dcr new` / `dcr init`)
|
|
|
|
- `package.version = "0.1.0"`
|
|
- `build.language = "c"`
|
|
- `build.standard = "c11"`
|
|
- `build.compiler = "clang"`
|
|
- `build.kind = "bin"`
|