Auf Englisch lesen

Freigeben über


Lernprogramm: Aktualisieren einer vorhandenen vcpkg-Abhängigkeit

Terminal options

Dieses Lernprogramm führt Sie zum Aktualisieren der Version einer vorhandenen vcpkg-Abhängigkeit. Es wird empfohlen, das Lernprogramm zum Veröffentlichen einer Bibliothek zu lesen, bevor Sie fortfahren.

In diesem Tutorial lernen Sie Folgendes:

Voraussetzungen

  • Ein Terminal
  • vcpkg
  • Git
  • einen C++-Compiler
  • Abschluss des Lernprogramms zum Packen

1 – Erstellen eines Überlagerungsports

Der erste Schritt besteht darin, einen Überlagerungsport des Pakets zu erstellen, das Sie ändern möchten.

Erstellen eines Verzeichnisses zum Speichern der Überlagerungsports

Das Überlagerungsportsverzeichnis kann an jedem beliebigen Speicherort ihrer Wahl erstellt werden. Ersetzen Sie $OVERLAY_LOCATION in jedem Schritt dieses Lernprogramms den ausgewählten Speicherort.

mkdir "$OVERLAY_LOCATION"
mkdir "$OVERLAY_LOCATION"

Kopieren sie den Inhalt des Ports in Ihr Überlagerungsportverzeichnis.

In diesem Lernprogramm aktualisieren Sie den vcpkg-sample-library Port in der Veröffentlichung eines Paketlernprogramms auf eine Version mit unterstützung für dynamische Bibliotheken.

Copy-Item -Path <path/to/vcpkg-sample-library> -Destination "$OVERLAY_LOCATION" -Recurse
xcopy <path/to/vcpkg-sample-library> "$OVERLAY_LOCATION" /E
cp -R <path/to/vcpkg-sample-library> "$OVERLAY_LOCATION"

2 – Ändern der Ports-Version

Ändern Sie die Version in vcpkg.json 1.0.1.

vcpkg.json

{
  "name": "vcpkg-sample-library",
  "version": "1.0.1",
  "homepage": "https://github.com/microsoft/vcpkg-docs/tree/cmake-sample-lib",
  "description": "A sample C++ library designed to serve as a foundational example for a tutorial on packaging libraries with vcpkg.",
  "license": "MIT",
  "dependencies": [
    {
      "name" : "vcpkg-cmake",
      "host" : true
    },
    {
      "name" : "vcpkg-cmake-config",
      "host" : true
    },
    "fmt"
  ]
}

3 – Ändern portfile.cmake

Aktualisieren der Quellreferenz

Quellen werden in der Regel mit vcpkg_from_... Wartungsfunktionen abgerufen. Die gewünschte Quellversion wird durch Optionen wie REF oder URLS. Wenn der Optionswert nicht mithilfe ${VERSION} von (d. h. dem Wert aus dem Manifest) abgeleitet wird, aktualisieren Sie den Optionswert mit dem tatsächlichen Git-Tag, git commit oder download-URL.

Abrufen des Pakets SHA512

Ausführen vcpkg install --overlay-ports=$OVERLAY_LOCATION vcpkg-sample-library, erhalten Sie eine Fehlermeldung über die SHA512 des Pakets. Kopieren Sie den Wert des tatsächlichen Hashs in Der Portdatei.

Beispielausgabe:

Expected hash: 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
Actual hash: 1290bdba0f55fcdd702a3292ce00798b173fdffa0c0cc005e15dc88c6d2e7a1143c16f29fde0647b8bddd01a7c97299cc845f7dff22811a3326cf7c69f5957f3

Modifizieren portfile.cmake

Aktualisieren Sie die SHA512 des Pakets mit dem richtigen Wert, und stellen Sie sicher, dass Sie die ONLY_STATIC_LIBRARY Einschränkung entfernen, da die neue Version der vcpkg-sample-library Unterstützung für die Erstellung als dynamische Bibliothek hinzufügt.

Ihre portfile.cmake Datei sollte etwa wie folgt aussehen:

portfile.cmake

vcpkg_from_github(
    OUT_SOURCE_PATH SOURCE_PATH
    REPO Microsoft/vcpkg-docs
    REF e5c3f12d5e6ac6450f43aee898f7697a06280521
    SHA512 1290bdba0f55fcdd702a3292ce00798b173fdffa0c0cc005e15dc88c6d2e7a1143c16f29fde0647b8bddd01a7c97299cc845f7dff22811a3326cf7c69f5957f3
    HEAD_REF cmake-sample-lib
)
vcpkg_cmake_configure(
    SOURCE_PATH "${SOURCE_PATH}"
)
vcpkg_cmake_install()
vcpkg_copy_pdbs()
vcpkg_cmake_config_fixup(PACKAGE_NAME "my_sample_lib")
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include")
file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright)
configure_file("${CMAKE_CURRENT_LIST_DIR}/usage" "${CURRENT_PACKAGES_DIR}/share/${PORT}/usage" COPYONLY)

4 – Installieren des Überlagerungsports

Führen Sie den folgenden Befehl aus, um zu überprüfen, ob Ihr Port funktioniert:

vcpkg install "--overlay-ports=$OVERLAY_LOCATION" vcpkg-sample-library

5 – Aktualisieren des integrierten Registrierungsports

Ersetzen des Inhalts des Ports

Ersetzen Sie den Inhalt des vcpkg-sample-library ports Verzeichnisses durch die aktualisierten Dateien. Übernehmen Sie dann Ihre Änderungen, indem Sie die folgenden Befehle in Ihrem lokalen Klon des Repositorys "kg" ausführen:

git checkout -b vcpkg-sample-library-1.0.1
git add ports/vcpkg-sample-library
git commit -m "Update vcpkg-sample-library to version 1.0.1"

Aktualisieren der Versionsdatenbank

Führen Sie den Befehl [vcpkg x-add-version] aus, um die Versionsdatenbankdateien zu aktualisieren.

vcpkg x-add-version vcpkg-sample-library

Pushen Ihrer Änderungen an eine Verzweigung

Führen Sie die folgenden Befehle aus, um die Versionsdatenbank zu aktualisieren und die Änderungen an ihre Verzweigung https://github.com/Microsoft/vcpkgzu übertragen.

git add versions/.
git commit -m "Update vcpkg-sample-library to version 1.0.1" --amend
git push --set-upstream <fork remote> vcpkg-sample-library-1.0.1

6 – Öffnen einer Pullanforderung

  1. Navigieren Sie zu Ihrem verzweigten Repository auf GitHub.
  2. Klicken Sie auf die Schaltfläche "Vergleich & Pullanforderung".
    1. Überprüfen Ihrer Änderungen
    2. Hinzufügen eines beschreibenden Titels und Kommentares
    3. Füllen Sie die Checkliste für die PR-Überprüfung aus.
  3. Klicken Sie auf "Pullanforderung erstellen".

Das ist alles! Sie haben erfolgreich einen Port in der kuratierten Registrierung des vcpkg aktualisiert.

Siehe auch

Weitere Informationen finden Sie unter: