Freigeben über


Konzept: Ports

Ein Port in vcpkg ist ein versionsiertes Rezept, das eine Reihe von Dateien erzeugt. Das Ausführen eines Ports wirkt sich auf das Installationsdiagramm aus, indem neue Header- oder Binärdateien erstellt werden. Ports verfügen möglicherweise über Abhängigkeiten von anderen Ports und erfordern möglicherweise zusätzliche Abhängigkeiten, wenn bestimmte Features aktiviert sind. Diese Abhängigkeiten müssen in den Portmetadaten widerspiegelt werden. Mindestens enthält ein Port Folgendes:

  • Metadaten zum Paket: Name, Version, unterstützte Features, Abhängigkeiten usw.
  • Anweisungen zum Abrufen, Erstellen, Erstellen bei Bedarf und Installieren des Pakets.

Darüber hinaus können Ports Folgendes umfassen:

  • Patches, die auf den Quellcode des Pakets angewendet werden sollen
  • Anleitungen zur Integration in das Buildsystem Ihres Projekts

Portfile (portfile.cmake)

Alle Ports müssen eine Portdatei (eine Datei mit dem Namen portfile.cmake) enthalten. Eine Portdatei ist ein Skript, das Anweisungen zum Erstellen und Installieren eines Pakets in der vcpkg-Umgebung enthält. Einige häufige Aufgaben, die von Portfiles ausgeführt werden, sind:

  • Laden Sie den Quellcode eines Pakets herunter.
  • Erstellen Sie das Paket mit dem upstream-Buildsystem.
  • Kopieren Sie die Buildausgabe in die vcpkg-Installationsstruktur.
  • Installieren Sie Buildsystemintegrationsdateien.

vcpkg.json

Die vcpkg.json Datei beschreibt Metadaten zum Paket, das im vcpkg-Port enthalten ist. Diese Datei definiert Attribute wie name, Version, Beschreibung, Abhängigkeiten, unterstützte Features und Plattformen usw. Weitere Informationen finden Sie in der vcpkg.json Dateireferenz.

CONTROL-Dateien

Warnung

CONTROL Dateien sind veraltet und werden nur aus Gründen der Abwärtskompatibilität beibehalten.

CONTROL Dateien in vcpkg dienen als Metadatendateien, die Details zu einem Paket oder "Port" angeben, die vcpkg installieren kann. Diese Dateien sind veraltet und wurden weitgehend durch vcpkg.json Manifestdateien für neue Ports ersetzt. Sie werden jedoch aus Gründen der Abwärtskompatibilität beibehalten. Weitere Informationen finden Sie unter "Steuerelementdateien ".

Patchdateien

In bestimmten Szenarien kann ein Port Patchdateien enthalten. Diese Dateien enthalten Änderungen am Quellcode der Bibliothek, die für die Behebung vorhandener Probleme oder für die Standard Kompatibilität mit anderen Komponenten unerlässlich sind. Bevor der Buildprozess beginnt, werden Patches als Teil der Schritte angewendet, die von der Portdatei ausgeführt werden, wodurch die nahtlose und fehlerfreie Bibliotheksintegration erleichtert wird. Weitere Informationen finden Sie im Standard tainer-Guide.

Portkategorien

Portkategorien sind umgangssprachliche Begriffe, die Standard tainer verwenden, um die Rollen zu formulieren, die verschiedene Ports innerhalb von vcpkg spielen. Obwohl diese Kategorien allgemeine Funktionen beschreiben, ist es sinnvoll zu beachten, dass ein bestimmter Port zu mehreren Kategorien oder vielleicht gar keiner gehören kann, basierend auf seinen Features und Anwendungsfällen.

Standardport

Ein Standardport dient als Rezept zum Erstellen von Bibliotheken aus der Quelle oder zum Bereitstellen von Headerdateien für schreibgeschützte Bibliotheken. Sie enthält die Anweisungen und Metadaten, die zum Abrufen, Erstellen und Installieren der Bibliothek erforderlich sind. Die meisten Bibliotheken in der kuratierten Registrierung sind Standardports.

Metaport

Ein Metaport dient dazu, Einschränkungen für das Installationsdiagramm zu erzwingen, ohne eigene Builddateien zu haben. Diese Ports werden häufig verwendet, um eine Gruppe verwandter Bibliotheken unter einem einzigen Namen zu gruppieren oder als Dereferenzierungsebene für austauschbare Komponenten zu dienen. Beispielsweise ist ein Metaport, boost der verschiedene Boost-Bibliotheken unter einem einzigen Namen gruppiert, um die Abhängigkeitsverwaltung zu vereinfachen.

Skriptport

Ein Skriptport enthält Hilfsskripts, die in erster Linie für interne Aufgaben innerhalb von vcpkg oder für den Verbrauch durch andere Ports vorgesehen sind. Diese Ports ermöglichen die Versionsverwaltung der Hilfsskripts und Standard die Kompatibilität und Standardisierung. Beispielsweise ist ein Skriptport, vcpkg-cmake der die vcpkg_cmake_configure() Hilfsfunktion verfügbar macht.

Nächste Schritte

Dieses Dokument bietet eine Übersicht über Ports in vcpkg, die ihre wesentlichen Elemente und verschiedene Kategorien enthält. Ausführlichere Themen und ausführlichere Anleitungen finden Sie in den folgenden Themen: