mirror of
https://github.com/dexoron/dcr.git
synced 2026-10-21 12:38:30 +00:00
- `sharedlib` build kind (shared library output) - ASM projects (`build.language = "asm"`) - NASM and GAS backends - `build.platform` architecture hint for `-march` / `/arch` - Basic CLI integration tests
41 lines
1.0 KiB
Markdown
41 lines
1.0 KiB
Markdown
# Project structure
|
|
|
|
## Minimal project
|
|
|
|
```text
|
|
project/
|
|
- dcr.toml
|
|
- src/
|
|
- - main.c
|
|
```
|
|
|
|
## Typical generated/optional files
|
|
|
|
```text
|
|
project/
|
|
- dcr.toml
|
|
- dcr.lock
|
|
- src/
|
|
- - ... source files ...
|
|
- target/
|
|
- - debug/
|
|
- - - obj/
|
|
- - - deps/
|
|
- - release/
|
|
- - - obj/
|
|
- - - deps/
|
|
```
|
|
|
|
## Meaning
|
|
|
|
- `dcr.toml`: main project configuration.
|
|
- `dcr.lock`: generated lock file for resolved path dependencies.
|
|
- `src/`: recursively scanned source directory.
|
|
- `target/<profile>/obj/`: cached object files for incremental rebuild.
|
|
- `target/<profile>/deps/`: synchronized copies of path dependencies.
|
|
- `target/<profile>/<name>` (or `.exe` on Windows): output for `kind = "bin"`.
|
|
- `target/<profile>/lib<name>.a` (or `<name>.lib` on Windows): output for `kind = "staticlib"`.
|
|
- `target/<profile>/lib<name>.so` (or `.dylib` on macOS, `<name>.dll` on Windows): output for `kind = "sharedlib"`.
|
|
|
|
If `build.target` is set, the final artifact is written to that custom directory, while object cache still stays in `target/<profile>/obj`.
|