Tutorial: Instalación de una dependencia desde un registro basado en Git
vcpkg usa un concepto denominado registros para administrar repositorios de paquetes. De forma predeterminada, vcpkg busca bibliotecas del registro mantenido público en https://github.com/Microsoft/vcpkg. Puede agregar registros privados o de terceros para que haya paquetes adicionales disponibles para su instalación.
Para obtener información sobre cómo crear sus propios registros, lea el tutorial para publicar paquetes en un registro.
Los registros se configuran mediante un vcpkg-configuration.json
archivo .
En este tutorial, aprenderá a:
- Un terminal
- Un compiiler de C++
- vcpkg
- CMake
En una nueva carpeta, cree los siguientes archivos de proyecto:
Un archivo de origen (main.cpp
):
#include <iostream>
#include <beison.h>
int main()
{
beison::Object obj;
obj.insert("name", beison::Value::string("demo"));
std::cout << beison::stringify(obj) << std::endl;
return 0;
}
Un archivo de proyecto de CMake (CMakeLists.txt
):
cmake_minimum_required(VERSION 3.18)
project(demo CXX)
add_executable(main main.cpp)
find_package(beicode CONFIG REQUIRED)
find_package(beison CONFIG REQUIRED)
target_link_libraries(main PRIVATE beicode::beicode beison::beison)
Ejecute el siguiente comando:
vcpkg new --application
La new
commmand crea dos archivos: un archivo de manifiesto (vcpkg.json
) y un archivo configuration(vcpkg-configuration.json
). Normalmente, el comando requiere que se proporcionen los --name
argumentos y --version
, pero como este tutorial es una aplicación de usuario final, usamos la --application
opción en su lugar.
Los archivos generados tendrán el siguiente contenido:
vcpkg.json
{}
vcpkg-configuration.json
{
"default-registry": {
"kind": "git",
"baseline": "7476f0d4e77d3333fbb249657df8251c28c4faae",
"repository": "https://github.com/microsoft/vcpkg"
},
"registries": [
{
"kind": "artifact",
"location": "https://github.com/microsoft/vcpkg-ce-catalog/archive/refs/heads/main.zip",
"name": "microsoft"
}
]
}
El archivo de configuración generado incluye dos definiciones del Registro. que default-registry
apunta al registro vcpkg mantenido en https://github.com/Microsoft/vcpkg, utilizando la confirmación más reciente como línea de base y un registro adicional "artifacts"
, que para el propósito de este tutorial no es necesario y se puede eliminar.
El código fuente hace referencia a dos bibliotecas que no están disponibles en el registro mantenido de vcpkg. Para satisfacer estas dependencias, es necesario agregarlas https://github.com/microsoft/vcpkg-docs como un registro adicional.
Modifique el contenido de vcpkg-configuration.json
en:
{
"default-registry": {
"kind": "git",
"baseline": "7476f0d4e77d3333fbb249657df8251c28c4faae",
"repository": "https://github.com/microsoft/vcpkg"
},
"registries": [
{
"kind": "git",
"repository": "https://github.com/microsoft/vcpkg-docs",
"reference": "vcpkg-registry",
"baseline": "768f6a3ad9f9b6c4c2ff390137690cf26e3c3453",
"packages": [ "beicode", "beison" ]
}
]
}
El archivo de configuración agrega un registro externo como origen para los beicode
paquetes y beison
. Los registros adicionales deben declarar explícitamente los paquetes que proporcionan mediante la "packages"
lista. Cuando vcpkg resuelve los nombres de paquetes en un registro, cualquier nombre de paquete que no se encuentre en un registro adicional se usará de forma predeterminada en ."default-registry"
Obtenga más información sobre la resolución de nombres de paquete en la documentación de registros.
Una vez que se ha agregado un registro al archivo de configuración, no es necesario realizar nada especial para instalar paquetes desde él. vcpkg resolverá de forma transparente los nombres de paquete en vcpkg.json
el registro correcto cuando siga la maquinaria de instalación habitual.
Agregue las dependencias y beison
en el beicode
vcpkg.json
archivo:
vcpkg add port beicode beison
Compile y ejecute el proyecto (sustituya $VCPKG_ROOT
por la ruta de instalación de vcpkg):
cmake -B build -S . -DCMAKE_TOOLCHAIN_FILE=$VCPKG_ROOT/scripts/buildsystems/vcpkg.cmake
cmake --build build
Ejecute el programa; la salida debería ser similar a la siguiente:
{
"name": "demo"
}
- Bloquear las versiones de las compilaciones repetibles mediante el control de versiones
- Reutilización de archivos binarios en ejecuciones de integración local o continua mediante el almacenamiento en caché binario
- Administración de las bibliotecas privadas mediante registros personalizados
Comentarios de vcpkg
vcpkg es un proyecto de código abierto. Seleccione un vínculo para proporcionar comentarios: