Справочник по vcpkg-configuration.json
Файл vcpkg-configuration.json
формирует часть манифеста проекта, а также vcpkg.json
. Все поля в vcpkg-configuration.json
файле используются только из проекта верхнего уровня. vcpkg-configuration.json
Файлы в любых зависимостях игнорируются.
В режимеvcpkg-configuration.json
манифеста может находиться в отдельном файле рядом vcpkg.json
или его можно внедрить в "vcpkg-configuration" field
.
В классическом режиме vcpkg будет использовать vcpkg-configuration.json
файл в корне экземпляра vcpkg.
Общие сведения об использовании реестров с vcpkg см. в разделе "Использование реестров".
Последняя схема JSON доступна по адресу https://raw.githubusercontent.com/microsoft/vcpkg-tool/main/docs/vcpkg-configuration.schema.json. Идентификаторы с поддержкой схемы JSON, такие как Visual Studio и Visual Studio Code, могут использовать этот файл для обеспечения автозаполнения и проверки синтаксиса. Для большинства идентификаторов удостоверяется "$schema"
vcpkg-configuration.json
этот URL-адрес.
Пример
{
"$schema": "https://raw.githubusercontent.com/microsoft/vcpkg-tool/main/docs/vcpkg-configuration.schema.json",
"default-registry": {
"kind": "git",
"repository": "https://internal/mirror/of/github.com/Microsoft/vcpkg",
"baseline": "eefee7408133f3a0fef711ef9c6a3677b7e06fd7"
},
"registries": [
{
"kind": "git",
"repository": "https://github.com/microsoft/vcpkg-docs",
"reference": "vcpkg-registry",
"baseline": "768f6a3ad9f9b6c4c2ff390137690cf26e3c3453",
"packages": [ "beicode", "beison" ]
}
],
"overlay-ports": [
"./team-ports",
"./custom-ports"
],
"overlay-triplets": [ "./my-triplets" ]
}
В этом примере добавляется частный реестр в https://github.com/microsoft/vcpkg-docs/tree/vcpkg-registry
качестве источника библиотек beicode
и beison
. Все остальные порты находятся во внутреннем зеркале курированного каталога, размещенном в https://internal/mirror/of/github.com/Microsoft/vcpkg
.
В этом примере также настраиваются пользовательские наложения для портов и тройных элементов, присутствующих в репозитории исходного кода.
Поля верхнего уровня
Имя. | Тип | Описание |
---|---|---|
реестр по умолчанию | Реестр или null | Реестр, используемый для всех портов без определенного реестра |
наложение портов | string[] | Список путей для использования в качестве портов наложения |
наложение триплеты | string[] | Список путей для использования в качестве тройных наложений |
Реестров | Реестр[] | Дополнительные реестры для использования для подмножеств портов |
"default-registry"
Реестр, используемый для всех портов без более конкретного реестра. Реестр или null. Необязательно.
Порты, не соответствующие "packages"
шаблону, разрешаются в реестр по умолчанию. Если реестр по умолчанию указан как null
, порты, которые не соответствуют, не удается разрешить. Если реестр по умолчанию опущен, он неявно будет установлен в встроенный реестр , используя значение "builtin-baseline"
в качестве "baseline"
значения.
"registries"
Дополнительные реестры, используемые для определенных портов. Массив реестров. Необязательно.
"overlay-ports"
Список путей наложения портов. Массив строк. Необязательно.
Каждый путь в массиве должен указывать на следующее:
- Каталог портов,
vcpkg.json
содержащий иportfile.cmake
- Каталог, содержащий каталоги портов, именуемые в честь портов (
zlib
vcpkg.json
должны быть вzlib/vcpkg.json
).
Относительные пути разрешаются относительно vcpkg-configuration.json
файла. Абсолютные пути можно использовать, но не рекомендуется.
"overlay-triplets"
Список путей тройного наложения. Массив строк. Необязательно.
Каждый путь в массиве должен указывать на каталог тройных файлов (см. документацию по триплетам). Относительные пути разрешаются относительно vcpkg-configuration.json
файла. Абсолютные пути можно использовать, но не рекомендуется.
Поля реестра
имени | Обязательно | Type | Описание |
---|---|---|---|
базис | Git и встроенные реестры | строка | Минимальное ограничение версии для всех портов из этого реестра |
kind | Да | строка | Тип используемого реестра |
Пакеты | Да, если не по умолчанию | строка | Список портов, поступающих из этого реестра |
path | Реестр файловой системы | строка | Путь к реестру файловой системы |
reference | Нет | строка | Справочник по Git для использования для доступных версий |
репозитории | Реестр Git | строка | URI реестра Git |
Реестр: "kind"
Тип используемого реестра. Строка . Обязательный.
"kind" Значение |
Тип реестра |
---|---|
"filesystem" |
Реестр файловой системы |
"git" |
Реестр Git |
"builtin" |
Встроенный реестр |
Реестр: "baseline"
Идентификатор конкретного реестра для минимальных версий, используемых из этого реестра. Строка . Обязательный.
Для реестров Git и для встроенного реестра это 40-символьный git фиксация sha в репозитории реестра, который содержит aversions/baseline.json
.
Для реестров файловой системы это может быть любое допустимое имя свойства JSON, которое определяется в реестре baseline.json
. Если реестр файловой системы не объявляет базовые показатели, используется "default"
значение.
Реестр: "reference"
Ссылка на Git, используемая для перечисления доступных версий реестра Git. Строка . Необязательно.
Если значение не указано, по умолчанию используется HEAD
значение . Это поле может быть ветвью раздела для доступа к версиям, которые еще не опубликованы.
Реестр: "repository"
Универсальный код ресурса (URI) реестра Git. Строка . Требуется для реестров Git.
Строка может быть любым форматом URI, который понимает Git:
"https://github.com/microsoft/vcpkg"
"git@github.com:microsoft/vcpkg"
"/dev/vcpkg-registry"
Относительные пути имеют неопределенное поведение, которое изменится в будущих версиях vcpkg.
Реестр: "path"
Путь к реестру файловой системы. Строка . Требуется для реестров файловой системы.
Относительные пути разрешаются относительно vcpkg-configuration.json
.
Реестр: "packages"
Список шаблонов портов, назначенных этому реестру. Массив строк. Требуется для всех реестров за пределами "default-registry"
.
Каждая запись должна быть следующей:
- Имя пакета
- Префикс имени пакета, за которым следует
*
(добавлено в инструмент версии 2022-12-14)
Шаблоны пакетов могут содержать только строчные буквы, цифры и -
дополнительные конечные буквы *
.
Примеры допустимых шаблонов:
*
: соответствует всем именам портовboost
: соответствует только портуboost
b*
: соответствует портам, начинающимся с буквыb
boost-*
: соответствует портам, начинающимся с префиксаboost-
Примеры недопустимых шаблонов:
*a
(*
должен быть последним символом в префиксе)a**
(разрешено только одно*
)a+
(+
не является допустимым символом шаблона)a?
(?
не является допустимым символом шаблона)
Дополнительные сведения об устранении имен портов см. в документации по использованию реестров.