mirror of
https://github.com/dexoron/dcr.git
synced 2026-10-21 19:29:30 +00:00
- Full Git dependency support in `dcr.toml`
- Support for `git`, `branch`, `tag`, and `rev` fields
- Automatic cloning and checkout via `git2`
- Dependencies are stored in `target/<profile>/deps/git/`
- New `dcr add` command for easy dependency management
- Short syntax: `github:user/repo`, `gitlab:user/repo`, `path:/to/lib`
- Automatic GitHub resolution for `git:user/repo`
- Visual feedback for dependency fetching with in-place status updates ("Fetching" → "Fetched")
- Modular dependency management architecture in `src/core/deps/`
41 lines
1013 B
Markdown
41 lines
1013 B
Markdown
# Dependency format
|
|
|
|
Dependencies are defined in `dcr.toml` under `[dependencies]`.
|
|
|
|
## Full example (Path)
|
|
|
|
```toml
|
|
[dependencies]
|
|
fmt = { path = "./third_party/fmt", include = ["include"], lib = ["lib"], libs = ["fmt"] }
|
|
```
|
|
|
|
## Full example (Git)
|
|
|
|
```toml
|
|
[dependencies]
|
|
json = { git = "https://github.com/nlohmann/json", tag = "v3.11.2" }
|
|
```
|
|
|
|
## Field reference
|
|
|
|
- `path`: local path to dependency root.
|
|
- `git`: URL of Git repository.
|
|
- `branch`: Git branch name.
|
|
- `tag`: Git tag name.
|
|
- `rev`: Git commit SHA.
|
|
- `include`: optional include subpaths (absolute or relative to dep root).
|
|
- `lib`: optional library subpaths (absolute or relative to dep root).
|
|
- `libs`: optional linker library names.
|
|
|
|
## Common valid compact forms
|
|
|
|
```toml
|
|
[dependencies]
|
|
mylib = { path = "./libs/mylib" }
|
|
gitlib = { git = "https://github.com/user/repo" }
|
|
# Shortest form for path
|
|
simple = "./libs/simple"
|
|
```
|
|
|
|
In these forms DCR will try defaults for include/lib dirs and use the dependency name as the linker library name.
|