Puertos de superposición
Normalmente, los puertos vcpkg se obtienen de los registros. Es muy probable que la mayoría de los puertos que instale procedan del registro oficial de vcpkg en https://github.com/Microsoft/vcpkg. vcpkg le permite instalar puertos disponibles a través del sistema de archivos, llamamos a estos puertos, puertos de superposición.
Un puerto de superposición puede actuar como reemplazo de un puerto existente o como puerto nuevo que, de lo contrario, no está disponible en un registro. Al resolver los nombres de paquete, los puertos de superposición tienen prioridad.
Los puertos de superposición se evalúan en el orden siguiente:
- Ubicaciones de superposición especificadas en la línea de comandos a través
--overlay-ports
de . - Ubicaciones de superposición especificadas en un
vcpkg-configuration.json
archivo a través deoverlay-ports
. - Ubicaciones de superposición especificadas por la variable de
VCPKG_OVERLAY_PORTS
entorno.
Al resolver nombres de puerto, se selecciona la primera ubicación que contiene un puerto de superposición coincidente.
Uso de un puerto de superposición
Un directorio puede representar un conjunto de puertos de superposición y se puede especificar de una de estas dos maneras:
- Puerto de superposición único:
<directory>/sqlite3
hace referencia a un único puerto. - Directorio de puertos de superposición:
<directory>
hace referencia a un directorio de puertos Un puerto válido debe contener yvcpkg.json
portfile.cmake
.
Puede agregar un puerto de superposición de varias maneras:
- Línea de comandos: agregue una o varias
--overlay-ports=<directory>
opciones al comando vcpkg. - Manifiesto: Rellenar la
"overlay-ports"
matriz envcpkg-configuration.json
- Variable de entorno: se establece
VCPKG_OVERLAY_PORTS
en una lista de rutas de acceso de directorio
Ejemplo: Ejemplo de puertos de superposición
Dada esta estructura de directorios:
El directorio de superposición denominado team-ports contiene los puertos sqlite3, rapidjson y curl. El directorio de superposición denominado my-ports contiene los puertos sqlite3 y rapidjson. El directorio vcpkg contiene el registro predeterminado.
Ejecute:
vcpkg install sqlite3 --overlay-ports=my-ports --overlay-ports=team-ports
Para instalarlo:
sqlite3
demy-ports
Ejecute:
vcpkg install sqlite3 rapidjson curl
--overlay-ports=my-ports/rapidjson
--overlay-ports=vcpkg/ports/curl
--overlay-ports=team-ports
Para instalarlo:
sqlite3
deteam-ports
rapidjson
demy-ports
curl
de "vcpkg/ports"
Ejemplo: Uso de puertos de superposición para usar una dependencia del administrador de paquetes del sistema
Para usar una dependencia del administrador de paquetes del sistema sobre una vcpkg, consulte nuestra entrada de blog.