Compartir a través de


Ejemplo de empaquetado de repositorios de GitHub: libogg

Creación del archivo de manifiesto

El archivo de manifiesto (denominado vcpkg.json) es un archivo JSON que describe los metadatos del paquete.

Para libogg, crearemos el archivo ports/libogg/vcpkg.json con el siguiente contenido:

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

Puede dar formato al archivo de manifiesto a nuestras especificaciones con vcpkg format-manifest ports/libogg/vcpkg.json.

Creación del archivo portfile

portfile.cmake describe cómo compilar e instalar el paquete. En primer lugar, descargamos el proyecto de 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
)

Las partes importantes que se van a actualizar son REPO para la ruta de acceso del repositorio de GitHub, REF para que se use una etiqueta o confirmación estables y SHA512 con la suma de comprobación del archivo descargado (puede hacerlo fácilmente estableciendo en 0, intentando instalar el paquete y copiando la suma de comprobación).

Por último, configuramos el proyecto con CMake, instalamos el paquete y copiamos sobre el archivo de licencia:

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

Compruebe la documentación de vcpkg_cmake_configure y vcpkg_cmake_install si el paquete necesita opciones adicionales.

Ahora puede ejecutar vcpkg install libogg para compilar e instalar el paquete.

Archivos de puerto de ejemplo sugeridos

En el ports/ directorio hay muchas bibliotecas que se pueden usar como ejemplos, incluidas muchas que no se basan en CMake.

  • Solo bibliotecas de encabezado
    • rapidjson
    • range-v3
  • Basado en MSBuild
    • chakracore
  • No CMake, sistema de compilación personalizado
    • openssl
    • ffmpeg