Informazioni di riferimento su vcpkg-configuration.json

Il vcpkg-configuration.json file fa parte del manifesto di un progetto, insieme a vcpkg.json. Tutti i campi nel vcpkg-configuration.json file vengono usati solo dal progetto di primo livello. vcpkg-configuration.json I file in tutte le dipendenze vengono ignorati.

In modalità manifesto, vcpkg-configuration.json può trovarsi in un file separato accanto vcpkg.json o può essere incorporato in "vcpkg-configuration" field.

In modalità classica vcpkg userà il vcpkg-configuration.json file nella radice dell'istanza vcpkg.

Per una panoramica dell'uso di registri con vcpkg, vedere Uso dei registri.

Lo schema JSON più recente è disponibile all'indirizzo https://raw.githubusercontent.com/microsoft/vcpkg-tool/main/docs/vcpkg-configuration.schema.json. Gli IDE con supporto dello schema JSON, ad esempio Visual Studio e Visual Studio Code, possono usare questo file per fornire il completamento automatico e il controllo della sintassi. Per la maggior parte degli IDE, è necessario impostare "$schema" su vcpkg-configuration.json questo URL.

Esempio

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

In questo esempio viene aggiunto un registro privato, https://github.com/microsoft/vcpkg-docs/tree/vcpkg-registry, come origine per le beicode librerie e beison. Tutte le altre porte si trovano da un mirror interno del catalogo curato ospitato in https://internal/mirror/of/github.com/Microsoft/vcpkg.

L'esempio configura anche sovrimpressioni personalizzate per porte e triplette presenti nel repository del codice sorgente.

Campi di primo livello

Nome Tipo Descrizione
default-registry Registro di sistema o Null Registro di sistema usato per tutte le porte senza un registro specifico
porte sovrapposte string[] Elenco di percorsi da usare come porte di sovrapposizione
triplette sovrapposte string[] Elenco di percorsi da usare come triplette sovrapposte
Registri Registro di sistema[] Registri aggiuntivi da usare per subset di porte

"default-registry"

Registro di sistema da usare per tutte le porte senza un registro più specifico. Registro di sistema o Null. Facoltativo.

Le porte che non corrispondono ad alcun "packages" modello vengono risolte nel Registro di sistema predefinito. Se il Registro di sistema predefinito viene specificato come null, le porte che non corrispondono non riusciranno a risolvere. Se il Registro di sistema predefinito viene omesso, verrà impostato in modo implicito su un Registro di sistema Builtin usando il valore di "builtin-baseline" come "baseline".

"registries"

Registri aggiuntivi da usare per porte specifiche. Matrice di registri. Facoltativo.

"overlay-ports"

Elenco di percorsi di sovrapposizione delle porte. Matrice di stringhe. Facoltativo.

Ogni percorso della matrice deve puntare a:

  • Directory della porta contenente vcpkg.json e portfile.cmake
  • Directory contenente le directory delle porte denominate in base alle porte (zlibdeve vcpkg.json essere in zlib/vcpkg.json).

I percorsi relativi vengono risolti in relazione al vcpkg-configuration.json file. I percorsi assoluti possono essere usati ma sono sconsigliati.

"overlay-triplets"

Elenco di percorsi di sovrapposizione triplete. Matrice di stringhe. Facoltativo.

Ogni percorso nella matrice deve puntare a una directory di file triplet (vedere la documentazione relativa ai tripletti). I percorsi relativi vengono risolti in relazione al vcpkg-configuration.json file. I percorsi assoluti possono essere usati ma sono sconsigliati.

Campi del Registro di sistema

Nome Obbligatorio Type Descrizione
riferimento Registri Git e Builtin string Vincolo di versione minima su tutte le porte del Registro di sistema
kind string Tipo di registro in uso
packages Sì, se non è predefinito string Elenco di porte da ottenere da questo Registro di sistema
path Registro di sistema del file system string Percorso del Registro di sistema del file system
reference No string Riferimento Git da usare per le versioni disponibili
repository Registro Git string URI del Registro di sistema Git

Registro di sistema: "kind"

Tipo di registro utilizzato. Stringa . Obbligatorio.

"kind" Valore Tipo registro
"filesystem" Registro di sistema del file system
"git" Registro Git
"builtin" Registro di sistema predefinito

Registro di sistema: "baseline"

Identificatore specifico del Registro di sistema per le versioni minime da usare da questo Registro di sistema. Stringa . Obbligatorio.

Per i registri Git e per il Registro di sistema Builtin, si tratta di un'ombreggiatura git di 40 caratteri nel repository del Registro di sistema che contiene un .versions/baseline.json

Per i registri del file system, può essere qualsiasi nome di proprietà JSON valido definito dal Registro di sistema nel relativo baseline.json. Se un registro del file system non dichiara una linea di base, il valore usato è "default".

Registro di sistema: "reference"

Riferimento Git usato per elencare le versioni disponibili di un Registro Git. Stringa . Facoltativo.

Se non specificato, il valore predefinito è HEAD. Questo campo può essere un ramo di argomenti per accedere alle versioni non ancora pubblicate completamente.

Registro di sistema: "repository"

URI del Registro di sistema Git. Stringa . Obbligatorio per i registri Git.

La stringa può essere qualsiasi formato URI compreso da Git:

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

I percorsi relativi non hanno un comportamento specificato che cambierà nelle versioni future di vcpkg.

Registro di sistema: "path"

Percorso del Registro di sistema del file system. Stringa . Obbligatorio per i registri del file system.

I percorsi relativi vengono risolti in relazione all'oggetto vcpkg-configuration.json.

Registro di sistema: "packages"

Elenco dei modelli di porta assegnati al Registro di sistema. Matrice di stringhe. Obbligatorio per tutti i registri all'esterno "default-registry"di .

Ogni voce deve essere:

  • Nome di un pacchetto
  • Prefisso del nome del pacchetto, seguito da * (aggiunto nella versione dello strumento 2022-12-14)

I modelli di pacchetto possono contenere solo lettere minuscole, cifre e -, con un carattere *finale facoltativo.

Esempi di modelli validi:

  • *: corrisponde a tutti i nomi delle porte
  • boost: corrisponde solo alla porta boost
  • b*: corrisponde alle porte che iniziano con la lettera b
  • boost-*: corrisponde alle porte che iniziano con il prefisso boost-

Esempi di modelli non validi:

  • *a (* deve essere l'ultimo carattere nel prefisso)
  • a** (è consentito un solo utente * )
  • a+ (+ non è un carattere di pattern valido)
  • a? (? non è un carattere di pattern valido)

Per altre informazioni sulla risoluzione dei nomi delle porte, vedere la documentazione relativa all'uso dei registri.