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"
    }
  ]
}
→ Ссылка