Ағылшын тілінде оқу

Бөлісу құралы:


Руководство. Установка зависимости из реестра на основе Git

vcpkg использует концепцию, называемую реестрами, для управления репозиториями пакетов. По умолчанию vcpkg находит библиотеки из общедоступного курированного реестра по адресу https://github.com/Microsoft/vcpkg. Вы можете добавить сторонние или частные реестры, чтобы сделать дополнительные пакеты доступными для установки.

Дополнительные сведения о создании собственных реестров см. в руководстве по публикации пакетов в реестре.

Реестры настраиваются с помощью vcpkg-configuration.json файла.

Из этого руководства вы узнаете следующее:

Необходимые компоненты

  • Терминал
  • Компиилер C++
  • vcpkg
  • CMake.

1. Создание проекта

В новой папке создайте следующие файлы проекта:

Исходный файл (main.cpp):

C++
#include <iostream>
#include <beison.h>

int main()
{
    beison::Object obj;
    obj.insert("name", beison::Value::string("demo"));
    std::cout << beison::stringify(obj) << std::endl;
    return 0;
}

Файл проекта CMake (CMakeLists.txt):

CMake
cmake_minimum_required(VERSION 3.18)

project(demo CXX)

add_executable(main main.cpp)

find_package(beicode CONFIG REQUIRED)
find_package(beison CONFIG REQUIRED)
target_link_libraries(main PRIVATE beicode::beicode beison::beison)

2. Создание файлов манифеста и конфигурации

Выполните следующую команду:

Console
vcpkg new --application

Commmand new создает два файла: файл манифеста (vcpkg.json) и файл конфигурации(vcpkg-configuration.json). Как правило, команда требует --name предоставления аргументов и --version аргументов, но так как это приложение является конечным пользователем, мы используем --application этот параметр.

Созданные файлы будут содержать следующее содержимое:

vcpkg.json

JSON
{}

vcpkg-configuration.json

JSON
{
  "default-registry": {
    "kind": "git",
    "baseline": "7476f0d4e77d3333fbb249657df8251c28c4faae",
    "repository": "https://github.com/microsoft/vcpkg"
  },
  "registries": [
    {
      "kind": "artifact",
      "location": "https://github.com/microsoft/vcpkg-ce-catalog/archive/refs/heads/main.zip",
      "name": "microsoft"
    }
  ]
}

Созданный файл конфигурации содержит два определения реестра. Указывает default-registry на проверенный реестр vcpkg, используя последнюю фиксацию в качестве https://github.com/Microsoft/vcpkg плана и дополнительный "artifacts" реестр, который для целей этого руководства не требуется и может быть удален.

3. Добавление частных реестров в файл конфигурации vcpkg

Исходный код ссылается на две библиотеки, недоступные в курированном реестре vcpkg. Для удовлетворения этих зависимостей необходимо добавить https://github.com/microsoft/vcpkg-docs в качестве дополнительного реестра.

Измените содержимое vcpkg-configuration.json следующим образом:

JSON
{
  "default-registry": {
    "kind": "git",
    "baseline": "7476f0d4e77d3333fbb249657df8251c28c4faae",
    "repository": "https://github.com/microsoft/vcpkg"
  },
  "registries": [
    {
      "kind": "git",
      "repository": "https://github.com/microsoft/vcpkg-docs",
      "reference": "vcpkg-registry",
      "baseline": "768f6a3ad9f9b6c4c2ff390137690cf26e3c3453",
      "packages": [ "beicode", "beison" ]
    }
  ]
}

Файл конфигурации добавляет внешний реестр в качестве источника и beicodebeison пакетов. Дополнительные реестры должны явно объявлять пакеты, предоставляемые с помощью "packages" списка. Если vcpkg разрешает имена пакетов в реестр, любое имя пакета, не найденное в дополнительном реестре, по умолчанию будет присвоено "default-registry"значение . Дополнительные сведения о разрешении имен пакета см. в документации по реестрам.

4. Установка пакетов из реестра

После добавления реестра в файл конфигурации ничего особенного не требуется для установки пакетов из него. vcpkg будет прозрачно разрешать имена пакетов в vcpkg.json правильном реестре при выполнении обычного оборудования установки.

beicode Добавьте в файл зависимостиbeison:vcpkg.json

Console
vcpkg add port beicode beison

Создайте и запустите проект (замените $VCPKG_ROOT путь установки vcpkg):

Console
cmake -B build -S . -DCMAKE_TOOLCHAIN_FILE=$VCPKG_ROOT/scripts/buildsystems/vcpkg.cmake
cmake --build build

Запустите программу, выходные данные должны выглядеть следующим образом:

Console
{
    "name": "demo"
}

Следующие шаги

  • Блокировка версий для повторяемых сборок с помощью управления версиями
  • Повторное использование двоичных файлов в локальной или непрерывной интеграции с помощью двоичного кэширования
  • Управление частными библиотеками с помощью пользовательских реестров