vcpkg-configuration.json Referenz
Die vcpkg-configuration.json
Datei ist Teil des Manifests eines Projekts zusammen mit vcpkg.json
. Alle Felder in der vcpkg-configuration.json
Datei werden nur aus dem Projekt der obersten Ebene verwendet – die vcpkg-configuration.json
Dateien in abhängigkeiten werden ignoriert.
Im Manifestmodusvcpkg-configuration.json
kann es sich in einer separaten Datei daneben vcpkg.json
befinden oder in die "vcpkg-configuration" field
Datei eingebettet werden.
Im klassischen Modus verwendet vcpkg die vcpkg-configuration.json
Datei im Stamm der vcpkg-Instanz.
Eine Übersicht über die Verwendung von Registrierungen mit vcpkg finden Sie unter Verwenden von Registries.
Das neueste JSON-Schema ist unter https://raw.githubusercontent.com/microsoft/vcpkg-tool/main/docs/vcpkg-configuration.schema.json. IDEs mit JSON-Schemaunterstützung wie Visual Studio und Visual Studio Code können diese Datei verwenden, um autoVervollständigen und Syntaxüberprüfung bereitzustellen. Für die meisten IDEs sollten Sie in Ihrer vcpkg-configuration.json
URL festlegen"$schema"
.
Beispiel
{
"$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 diesem Beispiel wird eine private Registrierung als https://github.com/microsoft/vcpkg-docs/tree/vcpkg-registry
Quelle für die Bibliotheken beicode
und beison
. Alle anderen Ports werden aus einem internen Spiegel des kuratierten Katalogs gefunden, der unter https://internal/mirror/of/github.com/Microsoft/vcpkg
.
Im Beispiel werden auch benutzerdefinierte Überlagerungen für Ports und Triplets konfiguriert, die im Quellcode-Repository vorhanden sind.
Felder auf oberster Ebene
Name | Typ | Beschreibung |
---|---|---|
Standardregistrierung | Registrierung oder Null | Registrierung, die für alle Ports ohne eine bestimmte Registrierung verwendet wird |
Überlagerungsports | string[] | Liste der Pfade, die als Überlagerungsportspeicherorte verwendet werden sollen |
Overlay-Triplets | string[] | Liste der Pfade, die als Overlay-Triplets verwendet werden sollen |
registries | Registry[] | Zusätzliche Registrierungen, die für Teilmengen von Ports verwendet werden sollen |
"default-registry"
Die Registrierung, die für alle Ports ohne eine spezifischere Registrierung verwendet werden soll. Eine Registrierung oder NULL. Optional.
Ports, die keinem "packages"
Muster entsprechen, werden in die Standardregistrierung aufgelöst. Wenn die Standardregistrierung als null
angegeben ist, werden ports, die nicht übereinstimmen, nicht aufgelöst. Wenn die Standardregistrierung nicht angegeben wird, wird sie implizit auf eine builtin-Registrierung mit dem Wert " "builtin-baseline"
als" "baseline"
festgelegt.
"registries"
Zusätzliche Registrierungen, die für bestimmte Ports verwendet werden sollen. Ein Array von Registries. Optional.
"overlay-ports"
Eine Liste der Portüberlagerungspfade. Ein Array der Zeichenfolgen. Optional.
Jeder Pfad im Array muss eine der folgenden Namen haben:
- Ein Verzeichnis, das einen Port enthält, mit
vcpkg.json
undportfile.cmake
Dateien, oder - Ein Verzeichnis, das Verzeichnisse enthält, die nach den Ports benannt sind (
zlib
vcpkg.json
müssen unterzlib/vcpkg.json
sein).
Relative Pfade werden relativ zur vcpkg-configuration.json
Datei aufgelöst. Absolute Pfade können verwendet werden, werden jedoch abgeraten.
"overlay-triplets"
Eine Liste der Dreifachüberlagerungspfade. Ein Array der Zeichenfolgen. Optional.
Jeder Pfad im Array muss auf ein Verzeichnis mit Tripletdateien verweisen (siehe Triplets-Dokumentation). Relative Pfade werden relativ zur vcpkg-configuration.json
Datei aufgelöst. Absolute Pfade können verwendet werden, werden jedoch abgeraten.
Registrierungsfelder
Name | Erforderlich | Type | Beschreibung |
---|---|---|---|
Baseline | Git und Builtin Registries | Zeichenfolge | Mindestversionseinschränkung für alle Ports aus dieser Registrierung |
kind | Ja | Zeichenfolge | Typ der verwendeten Registrierung |
packages | Ja, wenn nicht standardmäßig | Zeichenfolge | Liste der Ports, die aus dieser Registrierung stammen sollen |
path | Dateisystemregistrierung | Zeichenfolge | Pfad zur Registrierung des Dateisystems |
reference | No | Zeichenfolge | Git-Referenz, die für verfügbare Versionen verwendet werden soll |
Repository | Git Registry | Zeichenfolge | URI der Git-Registrierung |
Registrierung: "kind"
Der Typ der verwendeten Registrierung. Eine Zeichenfolge. Erforderlich.
"kind" Wert |
Registrierungstyp |
---|---|
"filesystem" |
Dateisystemregistrierung |
"git" |
Git Registry |
"builtin" |
Integrierte Registrierung |
Registrierung: "baseline"
Der registrierungsspezifische Bezeichner für die Mindestversionen, die von dieser Registrierung verwendet werden sollen. Eine Zeichenfolge. Erforderlich.
Für Git Registries und für die builtin Registry ist dies eine 40-stellige Git-Commit-Sha im Repository der Registrierung, die ein versions/baseline.json
.
Bei Filesystem Registries kann es sich um einen beliebigen gültigen JSON-Eigenschaftsnamen, den die Registrierung für die baseline.json
Registrierung definiert, sein. Wenn eine Dateisystemregistrierung keinen Basisplan deklariert, wird "default"
der verwendete Wert verwendet.
Registrierung: "reference"
Der Git-Verweis, der zum Auflisten der verfügbaren Versionen einer Git-Registrierung verwendet wird. Eine Zeichenfolge. Optional.
Wenn nicht angegeben, wird standardmäßig auf HEAD
. Dieses Feld kann ein Themenzweig sein, um auf Versionen zuzugreifen, die noch nicht vollständig veröffentlicht sind.
Registrierung: "repository"
Der URI der Git-Registrierung. Eine Zeichenfolge. Erforderlich für Git Registries.
Die Zeichenfolge kann ein beliebiges URI-Format sein, das Git versteht:
"https://github.com/microsoft/vcpkg"
"git@github.com:microsoft/vcpkg"
"/dev/vcpkg-registry"
Relative Pfade weisen ein nicht spezifiziertes Verhalten auf, das sich in zukünftigen Versionen von vcpkg ändern wird.
Registrierung: "path"
Der Pfad zur Dateisystemregistrierung. Eine Zeichenfolge. Erforderlich für Filesystem-Registrierungen.
Relative Pfade werden relativ zum vcpkg-configuration.json
.
Registrierung: "packages"
Die Liste der Portmuster, die dieser Registrierung zugewiesen sind. Ein Array der Zeichenfolgen. Erforderlich für alle Register außerhalb "default-registry"
.
Jeder Eintrag muss eine der folgenden Sein:
- Der Name eines Pakets
- Ein Paketnamenpräfix gefolgt von
*
(In Toolversion 2022-12-14 hinzugefügt)
Paketmuster dürfen nur Kleinbuchstaben, Ziffern und -
, mit einer optionalen nachgestellten *
.
Beispiele für gültige Muster:
*
: Entspricht allen Portnamen.boost
: Entspricht nur dem Port.boost
b*
: Übereinstimmung mit Ports, die mit dem Buchstaben beginnenb
boost-*
: Gleicht Ports ab, die mit dem Präfix beginnenboost-
Beispiele für ungültige Muster:
*a
(*
muss das letzte Zeichen im Präfix sein)a**
(nur eine*
ist zulässig)a+
(+
ist kein gültiges Musterzeichen)a?
(?
ist kein gültiges Musterzeichen)
Weitere Informationen dazu, wie Portnamen aufgelöst werden, finden Sie in der Dokumentation "Using Registries".