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