Przykład tworzenia pakietów repozytoriów GitHub: libogg

Tworzenie pliku manifestu

Plik manifestu (o nazwie vcpkg.json) to plik json opisujący metadane pakietu.

W przypadku biblioteki libogg utworzymy plik ports/libogg/vcpkg.json z następującą zawartością:

{
  "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."
}

Plik manifestu można sformatować do naszych specyfikacji za pomocą polecenia vcpkg format-manifest ports/libogg/vcpkg.json.

Tworzenie pliku portów

portfile.cmake Opisuje sposób kompilowania i instalowania pakietu. Najpierw pobierzemy projekt z usługi GitHub za pomocą polecenia vcpkg_from_github:

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

Ważne elementy do aktualizacji dotyczą REPO ścieżki repozytorium GitHub, REF stabilnego tagu/zatwierdzenia do użycia oraz SHA512 sumy kontrolnej pobranego pliku (można to łatwo uzyskać, ustawiając go na 0, próbując zainstalować pakiet i kopiując sumę kontrolną).

Na koniec skonfigurujemy projekt za pomocą narzędzia CMake, zainstalujemy pakiet i skopiujemy plik licencji:

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

Zapoznaj się z dokumentacją vcpkg_cmake_configure i vcpkg_cmake_install jeśli pakiet wymaga dodatkowych opcji.

Teraz możesz uruchomić polecenie vcpkg install libogg , aby skompilować i zainstalować pakiet.

Sugerowane przykładowe pliki portów

W katalogu jest wiele bibliotek, które mogą być używane jako przykłady, w tym wiele, które nie są oparte na narzędziu ports/ CMake.

  • Biblioteki tylko nagłówków
    • rapidjson
    • range-v3
  • Oparty na programie MSBuild
    • chakracore
  • Nienależący do narzędzia CMake, niestandardowy system kompilacji
    • openssl
    • ffmpeg