Files
dcr/docs-crowdin-export/ru-RU/docs/reference/dependencies.mdx.mdx
2026-07-06 15:01:49 +08:00

89 lines
2.8 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
sidebar_label: Зависимости
---
# Зависимости
## Форматы
В секции `[dependencies]` поддерживаются три формата:
### Строка (реестр)
```toml
[dependencies]
fmt = "10.1.1"
spdlog = "^1.12"
catch2 = ">=3.0,<4.0"
```
Строка версии используется без изменений для поиска в реестре.
### Табличный (git)
```toml
[dependencies]
fmt = { git = "https://github.com/fmtlib/fmt", tag = "10.1.1" }
```
Поля: `git`, `branch`, `tag`, `rev`, `features`.
### Табличный (path)
```toml
[dependencies]
mylib = { path = "../mylib" }
```
## Реестр
## RegistryDCR использует реестр пакетов для поиска зависимостей по имени.```toml
# ~/.dcr/config.toml
[registry]
main = { url = "https://github.com/dcr-ports/dcr-index", priority = 1 }
```
```toml
# ~/.dcr/config.toml
[[registry]]
name = "default"
url = "https://index.dcr.pm"
```
Приоритет реестра: порядок в файле `config.toml`. Переменная `DCR_INDEX_PATH` переопределяет путь к index.json.
## Git-зависимости
При добавлении git-зависимости DCR клонирует репозиторий через `git2`:
* `branch` — переключиться на ветку
* `tag` — переключиться на тег
* `rev` — переключиться на конкретный коммит
* `features` — флаги функций (проанализированы, но не влияют на сборку)
Путь к кэшу: `~/.dcr/git/\<hash>/`.
## Path-зависимости
Локальные пути. DCR автоматически находит include и lib директории.
```toml
[dependencies]
mylib = { path = "/abs/path/to/lib" }
mylib = { path = "../relative/path" }
```
## dcr.lock
Файл блокировки зависимостей. Содержит точные версии, хеши и источники.
Создаётся при выполнении команды `dcr build` при наличии зависимостей реестра. Автоматически обновляется при `dcr add`.
## Процесс резолва
1. Загружаются все зависимости (registry → git → path)
2. Для зависимостей типа «path»: рекурсивно прочитать их файлы `dcr.toml`
3. Для зависимостей реестра: выполните поиск в файле `index.json`
4. Для зависимостей Git: клонировать в кэш
5. Собираются include_dirs, lib_dirs, libs для передачи компилятору