Tutorial: Publicación de paquetes en un registro vcpkg privado mediante Git

Puede crear su propio registro privado de paquetes para consumir a través de vcpkg mediante Git. Los registros privados son ideales si desea usar bibliotecas privadas o desea realizar modificaciones no públicas en los paquetes existentes. Tiene control total sobre las versiones y el contenido de los paquetes, por lo que realmente no hay ningún límite en lo que puede poner en un registro privado.

En este tutorial se muestra cómo:

Requisitos previos:

  • vcpkg
  • Git
  • Un terminal

1- Creación de un registro vcpkg mediante Git

Los registros basados en Git de vcpkg son repositorios de Git con un diseño específico que vcpkg entiende.

Inicialización de un registro de Git:

mkdir vcpkg-registry
cd vcpkg-registry
git init

2 - Creación del diseño del Registro

Un registro basado en Git vcpkg requiere lo siguiente:

  • una carpeta denominada ports para contener los puertos del Registro,
  • una carpeta denominada versions para contener la base de datos de versiones,
  • un archivo denominado baseline.json en la versions carpeta .

El repositorio puede contener cualquier otro archivo que desee, por ejemplo: scripts, un archivo LICENSE, un archivo, documentación README.md , etc.

1 - Crear las ports carpetas y versions :

mkdir ports
mkdir versions

2 - Cree un archivo denominado baseline.json en la versions carpeta con el siguiente contenido:

{
  "default": {}
}

El archivo válido baseline.json mínimo debe incluir el contenido anterior. Lea la documentación de control de versiones para obtener más información sobre el baseline.json archivo y la base de datos de versiones.

3- Confirmación de los cambios en el repositorio

git add versions/baseline.json
git commit -m "Initial commit"

Opcionalmente, si tiene configurado un repositorio de Git remoto, este es un buen punto para insertar los cambios.

git remote add origin https://example.com/vcpkg-registry.git
git push --set-upstream origin HEAD

3 - Agregar puertos al registro

Copie todos los puertos del paquete en la ports carpeta del Registro. Cada puerto debe tener su propio directorio que contenga al menos un vcpkg.json archivo y un portfile.cmake archivo. Obtenga más información sobre cómo crear puertos en el tutorial sobre el empaquetado de repositorios de GitHub.

git add ports/.
git commit -m "Add registry ports"

4- Actualización de la base de datos de versiones

Cada puerto del Registro debe tener un archivo de versión correspondiente. El comando genera vcpkg x-add-version archivos de versión. Este comando también actualiza la entrada de línea base para cada puerto de version/baseline.json.

Para actualizar la base de datos de versiones de todos los puertos a la vez, ejecute:

vcpkg --x-builtin-ports-root=./ports --x-builtin-registry-versions-dir=./versions x-add-version --all --verbose

--x-builtin-registry-versions-dir Y --x-builtin-ports-root son opciones de redirección. Normalmente, el comando funciona en el x-add-version registro integrado de vcpkg; pero mediante las opciones de redirección, es posible usar el comando en los registros de Git locales.

La --all opción hace que vcpkg examine el ports directorio para todos los puertos disponibles y los actualiza a la vez. Por último, la --verbose opción hace que el comando imprima cada operación que se ejecuta en la salida estándar, puede suprimir la salida quitando esta opción.

x-add-version requiere que todos los cambios de puerto se hayan confirmado en el repositorio git del registro. Lea la documentación de [x-add-version comando] para obtener más información.

Cuando toda la salida sea correcta, ejecute:

git add .
git commit -m "Update versions database"

Si tiene un repositorio git remoto, no olvide insertar los cambios:

git push

Pasos siguientes

Y listo. Ha configurado su propio registro privado basado en Git para usarlo con vcpkg.

Estas son algunas tareas adicionales para probar a continuación: