Files
dcr/docs/configuration/dependencies-section.md
Dexoron 0193834bfd feat: Enhance dependency management and project setup
- Added support for registry-based dependencies in the dependencies section.
- Updated the package section to include a project type field.
- Introduced a new CLI command `dcr setup` to load and display registry configurations.
- Implemented a new module for handling registry operations, including loading and resolving packages from registries.
- Enhanced the build process to handle library packaging, including copying headers and libraries to the appropriate target directories.
- Updated the CLI to support building library packages and added tests for library package builds.
- Improved error handling and output messages during dependency resolution and package fetching.
2026-05-13 19:24:53 +08:00

1.5 KiB

Dependencies section

DCR supports registry-based dependencies and path dependencies.

Example

[dependencies]
# Registry dependency
mylib = "0.1.0"
# Git dependency
json = { git = "https://github.com/nlohmann/json", tag = "v3.11.2" }
# Path dependency
frecli = { path = "./lib/frecli", include = ["."], lib = ["."], libs = ["frecli"] }

Supported dependency types

Registry dependencies

Defined by name and version string. DCR automatically resolves the package from the configured registry index.

Git dependencies

Defined by repository URL and optionally branch, tag, or revision.

  • git (string, required): repository URL.
  • branch, tag, rev (string, optional): Git reference.

Path dependencies

  • path (string, required): absolute path or path relative to project root.
  • include (string array, optional): include directories inside dependency.
  • lib (string array, optional): library directories inside dependency.
  • libs (string array, optional): library names for linker.

Defaults for path dependencies

  • If include is omitted, DCR tries <dep>/include.
  • If lib is omitted, DCR tries <dep>/lib, then <dep>/lib64.
  • If libs is omitted, dependency key name is used.

Validation

  • Dependency value must be a string (registry) or a TOML table (path).
  • Registry dependencies use the version string to match versions in the registry.
  • path is mandatory for path dependencies.
  • include/lib/libs must be arrays of strings if provided.