Verwendung von wraptool
Wraptool ist ein Unterbefehl von Meson, mit dem Sie Ihre Quellcodeabhängigkeiten über die WrapDB-Datenbank verwalten können. Es bietet Ihnen alle erwarteten Funktionen, wie z. B. die Installation und Aktualisierung von Abhängigkeiten. Das Wrap-Tool funktioniert auf allen Plattformen. Die einzige Einschränkung besteht darin, dass die Wrap-Definition auf Ihrer Zielplattform funktioniert. Wenn Sie feststellen, dass einige Wraps nicht funktionieren, melden Sie bitte Fehler oder, noch besser, Patches.
Alle hier aufgeführten Codebeispiele gehen davon aus, dass Sie die Befehle in Ihrem Quellcode-Hauptverzeichnis ausführen. Zeilen, die mit $ beginnen, sind Befehle zum Eingeben.
Einfache Abfrage
Die einfachste Operation ist die Abfrage der verfügbaren Pakete. Um sie alle aufzulisten, geben Sie den folgenden Befehl ein
$ meson wrap list
box2d
enet
gtest
libjpeg
liblzma
libpng
libxml2
lua
ogg
sqlite
vorbis
zlib
Normalerweise möchten Sie nach einem bestimmten Paket suchen. Dies kann mit dem Befehl search erfolgen
$ meson wrap search jpeg
libjpeg
Wenn ein Paket nicht in der Liste der Wraps gefunden wird, durchsucht der Befehl search alle Wrap-Abhängigkeiten
$ meson wrap search glib-2.0
Dependency glib-2.0 found in wrap glib
Um festzustellen, welche Versionen von libjpeg zur Installation verfügbar sind, geben Sie den Befehl info ein
$ meson wrap info libjpeg
Available versions of libjpeg:
9a 2
Die erste Zahl ist die Upstream-Release-Version, in diesem Fall 9a. Die zweite Zahl ist die Wrap-Revisionsnummer. Sie beziehen sich auf nichts Bestimmtes, aber größere Zahlen implizieren neuere Releases. Sie sollten immer die neueste verfügbare Version verwenden.
Abhängigkeiten installieren
Die Installation von Abhängigkeiten ist genauso einfach. Erstellen Sie zuerst das Verzeichnis subprojects am Anfang Ihres Quellbaums und geben Sie den Installationsbefehl ein.
$ meson wrap install libjpeg
Installed libjpeg branch 9a revision 2
Nun können Sie in Ihrer meson.build-Datei subproject('libjpeg') aufrufen, um es zu verwenden.
Um zu überprüfen, ob Ihre Projekte auf dem neuesten Stand sind, können Sie den Befehl status ausführen.
$ meson wrap status
Subproject status
libjpeg up to date. Branch 9a, revision 2.
zlib not up to date. Have 1.2.8 2, but 1.2.8 4 is available.
In diesem Fall ist für zlib eine neuere Version verfügbar. Das Aktualisieren ist unkompliziert
$ meson wrap update zlib
Updated zlib to branch 1.2.8 revision 4
Wraptool kann noch mehr als das. Dokumentationen dazu finden Sie in der Kommandozeilenhilfe, auf die Sie mit meson wrap --help zugreifen können.
Automatische Abhängigkeits-Fallback
Seit 0.64.0 kann Meson WrapDB verwenden, um fehlende Abhängigkeiten automatisch zu finden.
Der Benutzer muss lediglich die neueste Datenbank herunterladen. Der folgende Befehl speichert sie in subprojects/wrapdb.json: $ meson wrap update-db
Sobald die Datenbank lokal verfügbar ist, wird jede Abhängigkeit, die nicht im System gefunden wird, aber in WrapDB verfügbar ist, automatisch heruntergeladen.
Der automatische Abruf von WrapDB-Unterprojekten kann deaktiviert werden, indem die Datei subprojects/wrapdb.json gelöscht wird oder indem --wrap-mode=nodownload verwendet wird.
Die Ergebnisse der Suche sind