Partager via


Exemple de dépôts GitHub empaquetage : libogg

Créer un fichier manifest

Le fichier manifeste (appelé vcpkg.json) est un fichier json décrivant les métadonnées du package.

Pour libogg, nous allons créer le fichier ports/libogg/vcpkg.json avec le contenu suivant :

{
  "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.",
  "homepage": "https://www.xiph.org/ogg/"
}

Vous pouvez mettre en forme le fichier manifeste avec vcpkg format-manifest ports/libogg/vcpkg.jsonnos spécifications.

Créer le fichier portfile

portfile.cmake décrit comment générer et installer le package. Tout d’abord, nous téléchargeons le projet à partir de Github avec vcpkg_from_github:

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

Les parties importantes à mettre à jour concernent REPO le chemin du dépôt GitHub, REF pour une balise/validation stable à utiliser et SHA512 avec la case activée um du fichier téléchargé (vous pouvez obtenir cela facilement en le définissant 0sur , en essayant d’installer le package et en copiant la somme de case activée sum).

Enfin, nous configurons le projet avec CMake, installons le package et copiez-le sur le fichier de licence :

vcpkg_cmake_configure(SOURCE_PATH ${SOURCE_PATH})
vcpkg_cmake_install()
vcpkg_install_copyright("${SOURCE_PATH}/COPYING")

Vérifiez la documentation et vcpkg_cmake_configure vcpkg_cmake_install si votre package a besoin d’options supplémentaires.

Vous pouvez maintenant exécuter vcpkg install libogg pour générer et installer le package.

Exemples suggérés de fichiers portfiles

Dans le ports/ répertoire sont de nombreuses bibliothèques qui peuvent être utilisées comme exemples, y compris beaucoup qui ne sont pas basées sur CMake.

  • Bibliothèques d’en-tête uniquement
    • rapidjson
    • range-v3
  • BASÉ sur MSBuild
    • chakracore
  • Non-CMake, buildsystem personnalisé
    • openssl
    • FFmpeg