VCPKG: Как зафиксировать версии зависимостей?
В проекте есть vcpkg.json вида
{
"$schema": "https://raw.githubusercontent.com/microsoft/vcpkg/master/scripts/vcpkg.schema.json",
"name": "grpc-tests",
"version-semver": "0.0.1",
"dependencies": [
{"name": "protobuf"},
{"name": "grpc"}
]
}
Как указать, что мне нужно grpc версии 1.44?
Ответы (1 шт):
Автор решения: Maxim Timakov
→ Ссылка
В vcpkg.json есть поле baseline - указатель на хеш комита от которого искать зависимости.
В списке dependencies для каждой зависимости нужно указать поле version>=...
Проблемы vcpkg: для фиксации нужно указывать АБСОЛЮТНО ВСЕ зависимости с их версиями(включая зависимости зависимостей).
Пример неполного vcpkg.json:
{
"name": "demo",
"version-semver": "0.0.1",
"builtin-baseline": "acc3bcf76b84ae5041c86ab55fe138ae7b8255c7",
"dependencies": [
{
"name": "boost",
"version>=": "1.79.0"
},
{
"name": "tbb"
},
{
"name": "protobuf",
"version>=": "3.21.4"
},
{
"name": "grpc",
"version>=": "1.48.0"
},
{
"name": "qt5-base",
"version>=": "5.15.5"
},
{
"name": "jsoncons",
"version>=": "0.168.7"
},
{
"name": "rocksdb",
"version>=": "6.27.3"
}
]
}