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
eportfile.cmake
- Directory contenente le directory delle porte denominate in base alle porte (
zlib
devevcpkg.json
essere inzlib/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 | Sì | 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 porteboost
: corrisponde solo alla portaboost
b*
: corrisponde alle porte che iniziano con la letterab
boost-*
: corrisponde alle porte che iniziano con il prefissoboost-
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.