Compartilhar via


vcpkg-configuration.json Referência

O vcpkg-configuration.json arquivo faz parte do manifesto de um projeto, juntamente com vcpkg.jsono . Todos os campos no vcpkg-configuration.json arquivo são usados apenas no projeto de nível superior - os vcpkg-configuration.json arquivos em qualquer dependência são ignorados.

No modo de manifesto, vcpkg-configuration.json pode estar em um arquivo separado ao lado vcpkg.json ou pode ser incorporado ao "vcpkg-configuration" field.

No Modo Clássico, o vcpkg usará o vcpkg-configuration.json arquivo na raiz da instância do vcpkg.

Para obter uma visão geral do uso de registros com vcpkg, consulte Usando registros.

O esquema JSON mais recente está disponível em https://raw.githubusercontent.com/microsoft/vcpkg-tool/main/docs/vcpkg-configuration.schema.json. Os IDEs com suporte ao esquema JSON, como Visual Studio e Visual Studio Code, podem usar esse arquivo para fornecer preenchimento automático e verificação de sintaxe. Para a maioria dos IDEs, você deve definir "$schema" vcpkg-configuration.json seu para este URL.

Exemplo

{
  "$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" ]
}

Este exemplo adiciona um registro privado, https://github.com/microsoft/vcpkg-docs/tree/vcpkg-registry, como a origem das bibliotecas beicode e beison. Todas as outras portas são encontradas a partir de um espelho interno do Catálogo Curado hospedado no https://internal/mirror/of/github.com/Microsoft/vcpkg.

O exemplo também configura sobreposições personalizadas para portas e trigêmeos que estão presentes no repositório de código-fonte.

Campos de nível superior

Nome Tipo Descrição
registro padrão Registro ou nulo Registro usado para todas as portas sem um registro específico
portas de sobreposição string[] Lista de caminhos a serem usados como locais de porta de sobreposição
trigêmeos de sobreposição string[] Lista de caminhos a serem usados como trigêmeos de sobreposição
Registros Registro Registros adicionais a serem usados para subconjuntos de portas

"default-registry"

O registro a ser usado para todas as portas sem um registro mais específico. Um Registro ou nulo. Opcional.

As portas que não correspondem a nenhum "packages" padrão são resolvidas para o registro padrão. Se o registro padrão for especificado como null, as portas que não corresponderem não serão resolvidas. Se o registro padrão for omitido, ele será implicitamente definido como um Registro Interno usando o valor de "builtin-baseline" como o "baseline".

"registries"

Registros adicionais a serem usados para portas específicas. Uma matriz de registros. Opcional.

"overlay-ports"

Uma lista de caminhos de sobreposição de porta. Uma matriz de cadeias de caracteres. Opcional.

Cada caminho na matriz deve nomear:

  • Um diretório que contém uma porta, com vcpkg.json e portfile.cmake arquivos, ou
  • Um diretório contendo diretórios com o nome das portas (zlib's vcpkg.json deve estar em zlib/vcpkg.json).

Os caminhos relativos são resolvidos em relação ao vcpkg-configuration.json arquivo. Caminhos absolutos podem ser usados, mas são desencorajados.

"overlay-triplets"

Uma lista de caminhos de sobreposição de trigêmeos. Uma matriz de cadeias de caracteres. Opcional.

Cada caminho na matriz deve apontar para um diretório de arquivos tripletos (consulte a documentação de trigêmeos). Os caminhos relativos são resolvidos em relação ao vcpkg-configuration.json arquivo. Caminhos absolutos podem ser usados, mas são desencorajados.

Campos do Registro

Nome Obrigatória Type Descrição
referência Git e registros internos string Restrição mínima de versão em todas as portas deste registro
kind Sim string Tipo de registro que está sendo usado
pacotes Sim, se não for padrão string Lista de portas que virão deste registro
caminho Registro do sistema de arquivos string Caminho para o registro do sistema de arquivos
referência Não string Referência do Git a ser usada para versões disponíveis
repositório Registro Git string URI do registro Git

Registro: "kind"

O tipo de registro que está sendo usado. Uma cadeia de caracteres. Obrigatória.

"kind" Valor Tipo de Registro
"filesystem" Registro do sistema de arquivos
"git" Registro Git
"builtin" Registro integrado

Registro: "baseline"

O identificador específico do Registro para as versões mínimas a serem usadas a partir deste Registro. Uma cadeia de caracteres. Obrigatória.

Para Registros Git e para o Registro Integrado, este é um git commit sha de 40 caracteres no repositório do registro que contém um versions/baseline.jsonarquivo .

Para Registros do Sistema de Arquivos, pode ser qualquer nome de propriedade json válido que o registro defina em seu baseline.json. Se um registro do sistema de arquivos não declarar uma linha de base, o valor usado será "default".

Registro: "reference"

A referência do Git usada para listar as versões disponíveis de um Registro do Git. Uma cadeia de caracteres. Opcional.

Se não for especificado, o padrão é HEAD. Esse campo pode ser uma ramificação de tópico para acessar versões que ainda não foram totalmente publicadas.

Registro: "repository"

O URI do Registro Git. Uma cadeia de caracteres. Necessário para registros Git.

A string pode ser qualquer formato de URI que o Git entenda:

  • "https://github.com/microsoft/vcpkg"
  • "git@github.com:microsoft/vcpkg"
  • "/dev/vcpkg-registry"

Os caminhos relativos têm um comportamento não especificado que será alterado em versões futuras do vcpkg.

Registro: "path"

O caminho para o Registro do Sistema de Arquivos. Uma cadeia de caracteres. Necessário para registros do sistema de arquivos.

Os caminhos relativos são resolvidos em relação ao vcpkg-configuration.json.

Registro: "packages"

A lista de padrões de porta atribuídos a esse registro. Uma matriz de cadeias de caracteres. Obrigatório para todos os registros fora "default-registry"do .

Cada entrada deve ser:

  • O nome de um pacote
  • Um prefixo de nome de pacote, seguido por * (Adicionado na versão da ferramenta 2022-12-14)

Os padrões de pacote podem conter apenas letras minúsculas, dígitos e -, com um *.

Exemplos de padrões válidos:

  • *: Corresponde a todos os nomes de porta
  • boost: Corresponde apenas à porta boost
  • b*: Corresponde às portas que começam com a letra b
  • boost-*: Corresponde às portas que começam com o prefixo boost-

Exemplos de padrões inválidos:

  • *a*( deve ser o último caractere no prefixo)
  • a** (apenas um * é permitido)
  • a++( não é um caractere de padrão válido)
  • a??( não é um caractere de padrão válido)

Consulte a documentação Usando Registros para obter mais informações sobre como os nomes de porta são resolvidos.