Files
dcr/docs/dependencies-and-build/dependency-format.md
Dexoron debc5d2044 Added:
- 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/`
2026-05-12 01:29:26 +08:00

1013 B

Dependency format

Dependencies are defined in dcr.toml under [dependencies].

Full example (Path)

[dependencies]
fmt = { path = "./third_party/fmt", include = ["include"], lib = ["lib"], libs = ["fmt"] }

Full example (Git)

[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

[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.