Пример упаковки репозиториев GitHub: libogg

Создание файла манифеста

Файл манифеста (называемый vcpkg.json) — это json-файл, описывающий метаданные пакета.

Для libogg мы создадим файл ports/libogg/vcpkg.json со следующим содержимым:

{
  "name": "libogg",
  "version-string": "1.3.3",
  "description": "Ogg is a multimedia container format, and the native file and stream format for the Xiph.org multimedia codecs."
}

Файл манифеста можно отформатировать в соответствии с vcpkg format-manifest ports/libogg/vcpkg.jsonнашими спецификациями.

Создание файла порта

portfile.cmake описывает, как создать и установить пакет. Сначала мы скачиваем проект из Github с помощью vcpkg_from_github:

vcpkg_from_github(
    OUT_SOURCE_PATH SOURCE_PATH
    REPO xiph/ogg
    REF v1.3.3
    SHA512 0bd6095d647530d4cb1f509eb5e99965a25cc3dd9b8125b93abd6b248255c890cf20710154bdec40568478eb5c4cde724abfb2eff1f3a04e63acef0fbbc9799b
    HEAD_REF master
)

Важными компонентами для обновления являются REPO путь репозитория GitHub, REF для стабильного тега или фиксации, а также SHA512 проверка суммы скачаемого файла (это можно легко получить, установив его0, пытаясь установить пакет и скопировать проверка sum).

Наконец, мы настроим проект с помощью CMake, установите пакет и скопируйте файл лицензии:

vcpkg_cmake_configure(SOURCE_PATH ${SOURCE_PATH})
vcpkg_cmake_install()
file(INSTALL "${SOURCE_PATH}/COPYING" DESTINATION "${CURRENT_PACKAGES_DIR}/share/libogg" RENAME copyright)

Проверьте документацию и vcpkg_cmake_configurevcpkg_cmake_install , если пакет нуждается в дополнительных параметрах.

Теперь можно выполнить vcpkg install libogg сборку и установку пакета.

Рекомендуемые примеры портов

В каталоге ports/ есть множество библиотек, которые можно использовать в качестве примеров, включая многие, которые не основаны на CMake.

  • Только библиотеки заголовков
    • rapidjson
    • range-v3
  • На основе MSBuild
    • chakracore
  • Non-CMake, настраиваемая система сборки
    • openssl
    • ffmpeg