Lernprogramm: Aktualisieren einer vorhandenen vcpkg-Abhängigkeit
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:
Der erste Schritt besteht darin, einen Überlagerungsport des Pakets zu erstellen, das Sie ändern möchten.
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"
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"
Ä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"
]
}
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.
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
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)
Führen Sie den folgenden Befehl aus, um zu überprüfen, ob Ihr Port funktioniert:
vcpkg install "--overlay-ports=$OVERLAY_LOCATION" vcpkg-sample-library
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"
Führen Sie den Befehl [vcpkg x-add-version
] aus, um die Versionsdatenbankdateien zu aktualisieren.
vcpkg x-add-version vcpkg-sample-library
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
- Navigieren Sie zu Ihrem verzweigten Repository auf GitHub.
- Klicken Sie auf die Schaltfläche "Vergleich & Pullanforderung".
- Überprüfen Ihrer Änderungen
- Hinzufügen eines beschreibenden Titels und Kommentares
- Füllen Sie die Checkliste für die PR-Überprüfung aus.
- Klicken Sie auf "Pullanforderung erstellen".
Das ist alles! Sie haben erfolgreich einen Port in der kuratierten Registrierung des vcpkg aktualisiert.
Weitere Informationen finden Sie unter:
Feedback zu vcpkg
vcpkg ist ein Open Source-Projekt. Wählen Sie einen Link aus, um Feedback zu geben: