Freigeben über


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" fieldDatei 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-registryQuelle 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 nullangegeben 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 und portfile.cmake Dateien, oder
  • Ein Verzeichnis, das Verzeichnisse enthält, die nach den Ports benannt sind (zlibvcpkg.jsonmüssen unter zlib/vcpkg.jsonsein).

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.jsonRegistrierung 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 beginnen b
  • boost-*: Gleicht Ports ab, die mit dem Präfix beginnen boost-

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".