mirror of
https://github.com/dexoron/dcr.git
synced 2026-10-21 22:49:42 +00:00
- 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.
45 lines
1.5 KiB
Markdown
45 lines
1.5 KiB
Markdown
# Dependencies section
|
|
|
|
DCR supports registry-based dependencies and path dependencies.
|
|
|
|
## Example
|
|
|
|
```toml
|
|
[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.
|