Beispiel für das Packen von GitHub-Repositorys: libogg

Paketlistendatei erstellen

Die Manifestdatei (aufgerufen vcpkg.json) ist eine JSON-Datei, die die Metadaten des Pakets beschreibt.

Für libogg erstellen wir die Datei ports/libogg/vcpkg.json mit dem folgenden Inhalt:

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

Sie können die Manifestdatei mit unseren Spezifikationen formatieren.vcpkg format-manifest ports/libogg/vcpkg.json

Erstellen der Portdatei

portfile.cmake beschreibt, wie das Paket erstellt und installiert wird. Zuerst laden wir das Projekt von Github mit vcpkg_from_github:

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

Die wichtigen Komponenten zum Aktualisieren sind REPO für den GitHub-Repositorypfad, REF für ein stabiles Tag/Commit für die Verwendung und SHA512 mit der Prüfsumme der heruntergeladenen Datei (Sie können dies ganz einfach abrufen, indem Sie es 0festlegen, versuchen, das Paket zu installieren und die Prüfsumme zu kopieren).

Schließlich konfigurieren wir das Projekt mit CMake, installieren das Paket und kopieren über die Lizenzdatei:

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

Überprüfen Sie die Dokumentation, und vcpkg_cmake_configurevcpkg_cmake_install wenn Ihr Paket zusätzliche Optionen benötigt.

Jetzt können Sie ausführen vcpkg install libogg , um das Paket zu erstellen und zu installieren.

Vorgeschlagene Beispielportdateien

ports/ Im Verzeichnis gibt es viele Bibliotheken, die als Beispiele verwendet werden können, einschließlich vieler Bibliotheken, die nicht auf CMake basieren.

  • Nur Headerbibliotheken
    • Rapidjson
    • range-v3
  • MSBuild-basiert
    • chacore
  • Non-CMake, benutzerdefiniertes Buildsystem
    • openssl
    • FFMPEG