Condividi tramite


Esempio di repository GitHub per la creazione di pacchetti: libogg

Creare il file manifest

Il file manifesto (denominato vcpkg.json) è un file JSON che descrive i metadati del pacchetto.

Per libogg si creerà il file ports/libogg/vcpkg.json con il contenuto seguente:

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

È possibile formattare il file manifesto in base alle specifiche con vcpkg format-manifest ports/libogg/vcpkg.json.

Creare il file di porta

portfile.cmake descrive come compilare e installare il pacchetto. Prima di tutto, scaricare il progetto da Github con vcpkg_from_github:

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

Le parti importanti da aggiornare sono REPO per il percorso del repository GitHub, REF per un tag/commit stabile da usare e SHA512 con il checksum del file scaricato (è possibile ottenerlo facilmente impostandolo su 0, provando a installare il pacchetto e copiando il checksum).

Infine, si configura il progetto con CMake, si installa il pacchetto e si copia il file di licenza:

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

Controllare la documentazione per vcpkg_cmake_configure e vcpkg_cmake_install se il pacchetto necessita di opzioni aggiuntive.

È ora possibile eseguire vcpkg install libogg per compilare e installare il pacchetto.

Portfile di esempio suggeriti

ports/ Nella directory sono disponibili molte librerie che possono essere usate come esempi, tra cui molte non basate su CMake.

  • Librerie solo intestazioni
    • rapidjson
    • range-v3
  • Basato su MSBuild
    • il sistema di core
  • Non CMake, sistema di compilazione personalizzato
    • openssl
    • ffmpeg