Referencia de vcpkg-configuration.json
El vcpkg-configuration.json
archivo forma parte del manifiesto de un proyecto, junto con vcpkg.json
. Todos los campos del vcpkg-configuration.json
archivo solo se usan desde el proyecto de nivel superior; los vcpkg-configuration.json
archivos de las dependencias se omiten.
En el modo de manifiesto, vcpkg-configuration.json
puede estar en un archivo independiente junto vcpkg.json
a o se puede incrustar en ."vcpkg-configuration" field
En el modo clásico, vcpkg usará el vcpkg-configuration.json
archivo en la raíz de la instancia de vcpkg.
Para obtener información general sobre el uso de registros con vcpkg, consulte Uso de registros.
El esquema JSON más reciente está disponible en https://raw.githubusercontent.com/microsoft/vcpkg-tool/main/docs/vcpkg-configuration.schema.json. Los IDE con compatibilidad con esquemas JSON, como Visual Studio y Visual Studio Code, pueden usar este archivo para proporcionar comprobación de sintaxis y autocompletar. Para la mayoría de los IDE, debe establecer "$schema"
en vcpkg-configuration.json
la dirección URL.
Ejemplo
{
"$schema": "https://raw.githubusercontent.com/microsoft/vcpkg-tool/main/docs/vcpkg-configuration.schema.json",
"default-registry": {
"kind": "git",
"repository": "https://internal/mirror/of/github.com/Microsoft/vcpkg",
"baseline": "eefee7408133f3a0fef711ef9c6a3677b7e06fd7"
},
"registries": [
{
"kind": "git",
"repository": "https://github.com/microsoft/vcpkg-docs",
"reference": "vcpkg-registry",
"baseline": "768f6a3ad9f9b6c4c2ff390137690cf26e3c3453",
"packages": [ "beicode", "beison" ]
}
],
"overlay-ports": [
"./team-ports",
"./custom-ports"
],
"overlay-triplets": [ "./my-triplets" ]
}
En este ejemplo se agrega un registro privado, , https://github.com/microsoft/vcpkg-docs/tree/vcpkg-registry
como origen para las bibliotecas beicode
y beison
. Todos los demás puertos se encuentran desde un reflejo interno del catálogo mantenido hospedado en https://internal/mirror/of/github.com/Microsoft/vcpkg
.
En el ejemplo también se configuran superposiciones personalizadas para puertos y triples que están presentes en el repositorio de código fuente.
Campos de nivel superior
Nombre | Escribir | Descripción |
---|---|---|
default-registry | Registro o null | Registro usado para todos los puertos sin un registro específico |
puertos de superposición | string[] | Lista de rutas de acceso que se van a usar como ubicaciones de puerto de superposición |
overlay-triplets | string[] | Lista de rutas de acceso que se van a usar como tripletes de superposición |
registries | Registro[] | Registros adicionales que se usarán para subconjuntos de puertos |
"default-registry"
Registro que se va a usar para todos los puertos sin un registro más específico. Registro o null. Opcional.
Los puertos que no coinciden con ningún "packages"
patrón se resuelven en el registro predeterminado. Si el registro predeterminado se especifica como null
, los puertos que no coinciden no se resolverán. Si se omite el registro predeterminado, se establecerá implícitamente en un Registro builtin con el valor de "builtin-baseline"
como "baseline"
.
"registries"
Registros adicionales que se usarán para puertos específicos. Matriz de registros. Opcional.
"overlay-ports"
Lista de rutas de acceso de superposición de puerto. Una matriz de cadenas. Opcional.
Cada ruta de acceso de la matriz debe asignar un nombre a:
- Un directorio que contiene un puerto, con
vcpkg.json
archivos yportfile.cmake
, o - Directorio que contiene directorios denominados después de
vcpkg.json
los puertos (zlib
deben estar enzlib/vcpkg.json
).
Las rutas de acceso relativas se resuelven en relación con el vcpkg-configuration.json
archivo. Se pueden usar rutas de acceso absolutas, pero no se recomienda.
"overlay-triplets"
Lista de rutas de acceso de superposición triple. Una matriz de cadenas. Opcional.
Cada ruta de acceso de la matriz debe apuntar a un directorio de archivos triplet (consulte la documentación de tripletos). Las rutas de acceso relativas se resuelven en relación con el vcpkg-configuration.json
archivo. Se pueden usar rutas de acceso absolutas, pero no se recomienda.
Campos del Registro
Nombre | Obligatorio | Type | Descripción |
---|---|---|---|
línea de base | Registros integrados y Git | string | Restricción de versión mínima en todos los puertos de este registro |
kind | Sí | string | Tipo de registro que se usa |
packages | Sí, si no es el valor predeterminado | string | Lista de puertos que se van a proceder de este registro |
path | Registro de sistema de archivos | string | Ruta de acceso al registro del sistema de archivos |
referencia | No | string | Referencia de Git que se va a usar para las versiones disponibles |
repositorio | Registro de Git | string | URI del registro de Git |
Registro: "kind"
Tipo de registro que se usa. Una cadena. Necesario.
"kind" Valor |
Tipo de registro |
---|---|
"filesystem" |
Registro de sistema de archivos |
"git" |
Registro de Git |
"builtin" |
Registro integrado |
Registro: "baseline"
Identificador específico del Registro para las versiones mínimas que se van a usar desde este registro. Una cadena. Necesario.
Para los registros de Git y para el Registro builtin, se trata de un sha de confirmación de Git de 40 caracteres en el repositorio del registro que contiene un versions/baseline.json
.
En el caso de los registros del sistema de archivos, puede ser cualquier nombre de propiedad json válido que el registro defina en su baseline.json
. Si un registro de sistema de archivos no declara una línea base, el valor utilizado es "default"
.
Registro: "reference"
Referencia de Git usada para enumerar las versiones disponibles de un Registro de Git. Una cadena. Opcional.
Si no se especifica, el valor predeterminado es HEAD
. Este campo puede ser una rama de tema para acceder a las versiones que aún no están totalmente publicadas.
Registro: "repository"
Identificador URI del Registro de Git. Una cadena. Requerido para los registros de Git.
La cadena puede ser cualquier formato de URI que Git comprenda:
"https://github.com/microsoft/vcpkg"
"git@github.com:microsoft/vcpkg"
"/dev/vcpkg-registry"
Las rutas de acceso relativas tienen un comportamiento no especificado que cambiará en versiones futuras de vcpkg.
Registro: "path"
Ruta de acceso al Registro del sistema de archivos. Una cadena. Necesario para los registros del sistema de archivos.
Las rutas de acceso relativas se resuelven en relación con .vcpkg-configuration.json
Registro: "packages"
Lista de patrones de puerto asignados a este registro. Una matriz de cadenas. Necesario para todos los registros fuera "default-registry"
de .
Cada entrada debe ser:
- Nombre de un paquete
- Prefijo de nombre de paquete, seguido de
*
(agregado en la versión de la herramienta 2022-12-14)
Los patrones de paquete solo pueden contener letras minúsculas, dígitos y -
, con un final *
opcional.
Ejemplos de patrones válidos:
*
: coincide con todos los nombres de puerto.boost
: solo coincide con el puerto.boost
b*
: coincide con los puertos que comienzan por la letra.b
boost-*
: coincide con los puertos que comienzan con el prefijo.boost-
Ejemplos de patrones no válidos:
*a
(*
debe ser el último carácter del prefijo)a**
(solo se permite una*
)a+
(+
no es un carácter de patrón válido)a?
(?
no es un carácter de patrón válido)
Consulte la documentación uso de registros para obtener más información sobre cómo se resuelven los nombres de puerto.