mirror of
https://github.com/dexoron/dcr.git
synced 2026-10-21 15:20:51 +00:00
- Updated build and run commands to accept a --target option for specifying target platforms. - Enhanced documentation to include cross-compilation usage and supported targets. - Modified configuration to allow target-specific settings and toolchains. - Introduced a new test command to run project tests with specified profiles and targets. - Improved handling of target directories and output structure for different platforms. - Added support for multiple targets in the configuration file. - Implemented inheritance for workspace and dependencies based on target and profile.
72 lines
1.5 KiB
Markdown
72 lines
1.5 KiB
Markdown
# dcr.toml overview
|
|
|
|
`dcr.toml` is the main project file used by DCR.
|
|
|
|
## Minimal generated template
|
|
|
|
```toml
|
|
[package]
|
|
name = "hello"
|
|
version = "0.1.0"
|
|
|
|
[build]
|
|
language = "c"
|
|
standard = "c11"
|
|
compiler = "clang"
|
|
kind = "bin"
|
|
|
|
[dependencies]
|
|
```
|
|
|
|
`dcr new` and `dcr init` generate this structure automatically.
|
|
|
|
## Required sections
|
|
|
|
- `[package]`
|
|
- `[build]`
|
|
- `[dependencies]`
|
|
|
|
Workspace-only root:
|
|
- `[workspace]` can be added to a normal root config to define members and dependency order.
|
|
- Root config still requires `[package]`, `[build]`, and `[dependencies]`.
|
|
|
|
## Required keys
|
|
|
|
- `package.name`
|
|
- `package.version`
|
|
- `build.language`
|
|
- `build.standard`
|
|
- `build.compiler`
|
|
- `build.kind`
|
|
|
|
`build.kind` must be either `bin`, `staticlib`, or `sharedlib`.
|
|
|
|
## Optional keys
|
|
|
|
- `build.inherit`
|
|
- `build.targets`
|
|
- `build.target`
|
|
- `build.platform`
|
|
- `build.cflags`
|
|
- `build.ldflags`
|
|
- `build.exclude`
|
|
- `build.include`
|
|
- `build.roots`
|
|
- `build.src_disable`
|
|
- `build.pkg_config`
|
|
- `build.steps`
|
|
- `build.post_steps`
|
|
- `build.generated`
|
|
- `build.expect`
|
|
- `build.clean`
|
|
- `build.debug`
|
|
- `build.release`
|
|
- `build.<target>` (target-specific overrides)
|
|
- dependency fields (`include`, `lib`, `libs`, `system`)
|
|
- `[toolchain]` overrides (`cc`, `cxx`, `as`, `ar`, `ld`, `uic`, `moc`, `rcc`)
|
|
- `[toolchain.<target>]` (target-specific toolchain)
|
|
- `[workspace]` members
|
|
- `[workspace.<target>]` (target-specific workspace)
|
|
- `[run]` overrides (`cmd`)
|
|
- `[run.<target>]` (target-specific run)
|