Partilhar via


vcpkg-configuration.json Referência

O arquivo vcpkg-configuration.json faz parte do de manifestode um projeto , juntamente com vcpkg.json. Todos os campos no arquivo vcpkg-configuration.json são usados apenas a partir do projeto de nível superior -- os arquivos vcpkg-configuration.json em quaisquer dependências são ignorados.

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

Em do Modo Clássico, vcpkg usará o arquivo vcpkg-configuration.json no raiz da instância 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. IDEs com suporte a 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" em seu vcpkg-configuration.json para essa 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 fonte para as bibliotecas beicode e beison. Todas as outras portas são encontradas a partir de um espelho interno do Catálogo com curadoria hospedado em https://internal/mirror/of/github.com/Microsoft/vcpkg.

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

Campos de nível superior

Designação Tipo Descrição
de 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
registos Registo[] Registos adicionais a utilizar para subconjuntos de portos

"default-registry"

O registro a ser usado para todas as portas sem um registro mais específico. A Registry ou null. Opcional.

As portas que não correspondem a nenhum padrão "packages" 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 Builtin Registry usando o valor de "builtin-baseline" como o "baseline".

"registries"

Registos adicionais a utilizar em portos específicos. Uma série de registos . 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 contendo uma porta, com arquivos vcpkg.json e portfile.cmake, ou
  • Um diretório contendo diretórios nomeados após as portas (zlib's vcpkg.json deve estar em zlib/vcpkg.json).

Os caminhos relativos são resolvidos em relação ao arquivo vcpkg-configuration.json. 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 triplete (consulte a documentação de trigêmeos). Os caminhos relativos são resolvidos em relação ao arquivo vcpkg-configuration.json. Caminhos absolutos podem ser usados, mas são desencorajados.

Campos do Registo

Designação Necessário Tipo Descrição
linha de base Registos Git e Builtin string Restrição de versão mínima em todas as portas deste registo
tipo Sim string Tipo de registo que está a ser utilizado
pacotes Sim, se não for padrão string Lista de portas provenientes deste registo
caminho Registro do sistema de arquivos string Caminho para o registro do sistema de arquivos
referência Não string Referência Git a ser usada para versões disponíveis
repositório Registro Git string URI do registro Git

Registro: "kind"

O tipo de registo que está a ser utilizado. Uma cadeia de caracteres. Necessário.

Valor "kind" Tipo de Registo
"filesystem" de registo do sistema de ficheiros
"git" de registo Git
"builtin" Builtin Registry

Registro: "baseline"

O identificador específico do registo para as versões mínimas a utilizar a partir deste registo. Uma cadeia de caracteres. Necessário.

Para de Registros Git e para o de Registro Interno, este é um sha de confirmação git de 40 caracteres no repositório do Registro que contém um versions/baseline.json.

Para de registros do sistema de arquivos, pode ser qualquer nome de propriedade json válido que o registro define 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 Git usada para listar versões disponíveis de um Registro Git. Uma cadeia de caracteres. Opcional.

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

Registro: "repository"

O URI do Git Registry. Uma cadeia de caracteres. Obrigatório para registros Git.

A cadeia de caracteres 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 Filesystem Registry. Uma cadeia de caracteres. Necessário para registros de 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 este registo. Uma matriz de cadeias de caracteres. Obrigatório para todos os registos fora "default-registry".

Cada entrada deve ser:

  • O nome de um pacote
  • Um prefixo de nome de pacote, seguido de * (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 *à direita opcional.

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 uma * é permitida)
  • a+ (+ não é um caractere de padrão válido)
  • a? (? não é um caractere de padrão válido)

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