Compartir a través de


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-registrycomo 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 y portfile.cmake , o
  • Directorio que contiene directorios denominados después de vcpkg.json los puertos (zlibdeben estar en zlib/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 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.