Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Bootstrap mit create
Suchen Sie zunächst ein global zugängliches Archiv der Quellen der Bibliothek. Zip, gzip und bzip werden alle unterstützt. Bevorzugen Sie offizielle Quellen oder Spiegel gegenüber inoffiziellen Spiegel.
Wenn Sie sich die Website von zlib ansehen, sieht die URL http://zlib.net/zlib-1.2.13.tar.gz
entsprechend aus.
Ermitteln Sie zweitens einen geeigneten Paketnamen. Dies sollte ASCII, Kleinbuchstabe und erkennbar für jemanden sein, der den "menschlichen Namen" der Bibliothek kennt. Wenn die Bibliothek bereits in einem anderen Paket-Manager verpackt ist, bevorzugen Sie diesen Namen.
Da zlib bereits als zlib verpackt ist, verwenden wir den Namen zlib2 für dieses Beispiel.
Wenn der Name des Servers für das Archiv nicht sehr beschreibend ist (z. B. herunterladen eines gezippten Commits oder einer Verzweigung von GitHub), wählen Sie einen schönen Archivnamen des Formulars <packagename>-<version>.zip
aus.
zlib-1.2.13.zip
ist ein guter Name, sodass keine Änderung erforderlich ist.
Alle diese Informationen können dann an den create
Befehl übergeben werden, der die Quellen herunter lädt und den Verpackungsprozess innerhalb ports/<packagename>
des Paketprozesses bootstrapiert.
PS D:\src\vcpkg> .\vcpkg create zlib2 http://zlib.net/zlib-1.2.13.tar.gz zlib-1.2.13.tar.gz
-- Downloading http://zlib.net/zlib-1.2.13.tar.gz -> zlib-1.2.13.tar.gz...
-- Generated portfile: D:\src\vcpkg\ports\zlib2\portfile.cmake
-- Generated manifest: D:\src\vcpkg\ports\zlib2\vcpkg.json
-- To launch an editor for these new files, run
-- .\vcpkg edit zlib2
Paketlistendatei erstellen
Zusätzlich zur generierten ports/<package>/portfile.cmake
Datei benötigen wir auch eine ports/<package>/vcpkg.json
Datei. Diese Datei ist eine einfache Gruppe von Feldern, die die Metadaten des Pakets beschreiben.
Für zlib2 erstellen wir die Datei ports/zlib2/vcpkg.json
mit dem folgenden Inhalt:
{
"name": "zlib2",
"version": "1.2.13",
"description": "A Massively Spiffy Yet Delicately Unobtrusive Compression Library"
}
Optimieren der generierten Portdatei
Die generierte portfile.cmake
Datei benötigt einige Bearbeitungen, um die meisten Bibliotheken in der Wildbahn korrekt zu verpacken, wir können jedoch mit dem Testen des Builds beginnen.
PS D:\src\vcpkg> .\vcpkg install zlib2
Computing installation plan...
The following packages will be built and installed:
zlib2[core]:x64-uwp
Starting package 1/1: zlib2:x64-uwp
Building package zlib2[core]:x64-uwp...
-- Using cached C:/src/vcpkg/downloads/zlib-1.2.13.tar.gz
-- Cleaning sources at C:/src/vcpkg/buildtrees/zlib2/src/1.2.13-deec42f53b.clean. Pass --editable to vcpkg to reuse sources.
-- Extracting source C:/src/vcpkg/downloads/zlib-1.2.13.tar.gz
-- Applying patch cmake_dont_build_more_than_needed.patch
-- Using source at C:/src/vcpkg/buildtrees/zlib2/src/1.2.13-deec42f53b.clean
-- Configuring x64-uwp
-- Building x64-uwp-dbg
-- Building x64-uwp-rel
-- Installing: C:/src/vcpkg/packages/zlib2_x64-uwp/share/zlib2/copyright
-- Performing post-build validation
Include files should not be duplicated into the /debug/include directory. If this cannot be disabled in the project cmake, use
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
/debug/share should not exist. Please reorganize any important files, then use
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share)
The software license must be available at ${CURRENT_PACKAGES_DIR}/share/zlib2/copyright
Found 3 error(s). Please correct the portfile:
D:\src\vcpkg\ports\zlib2\portfile.cmake
An diesem Punkt ist es wichtig, die Fehlermeldungen und Protokolldateien zu lesen und gleichzeitig die Qualität der Portdatei stetig zu verbessern. Zlib musste eine diskrete Kopie der LIZENZ bereitstellen, um in das Paket zu kopieren, den Build und die Installation von ausführbaren Dateien und Headern zu unterdrücken und die statischen Bibliotheken nach der Installation zu entfernen.
Vorgeschlagene Beispielportdateien
ports/
Im Verzeichnis gibt es viele Bibliotheken, die als Beispiele verwendet werden können, einschließlich vieler Bibliotheken, die nicht auf CMake basieren.
- Nur Headerbibliotheken
- Rapidjson
- range-v3
- MSBuild-basiert
- chacore
- Non-CMake, benutzerdefiniertes Buildsystem
- openssl
- FFMPEG