Meson verwenden

Meson wurde so konzipiert, dass es so einfach wie möglich zu bedienen ist. Diese Seite beschreibt die ersten Schritte, die für Installation, Fehlerbehebung und Standardnutzung erforderlich sind.

Für fortgeschrittenere Konfigurationen lesen Sie bitte die Hilfe auf der Befehlszeile meson --help oder die Meson-Dokumentation auf der Website von Mesonbuild.

Inhaltsverzeichnis

Voraussetzungen

Ninja wird nur benötigt, wenn Sie das Ninja-Backend verwenden. Meson kann auch native VS- und Xcode-Projektdateien generieren.

Installation über den Paketmanager

Ubuntu

$ sudo apt-get install python3 python3-pip python3-setuptools \
                       python3-wheel ninja-build

Aufgrund unseres häufigen Release-Zyklus und unserer Entwicklungsgeschwindigkeit können Distribution-pakete schnell veraltet sein.

Installation über Python

Voraussetzungen: pip3

Der beste Weg, die aktuellste Version von Mesonbuild zu erhalten.

Als lokaler Benutzer installieren (empfohlen)

$ pip3 install --user meson

Als Root installieren

# pip3 install meson

Wenn Sie sich nicht sicher sind, ob Sie als Root oder als lokaler Benutzer installieren sollen, installieren Sie als lokaler Benutzer.

Installation aus dem Quellcode

Voraussetzungen: git

Meson kann direkt aus dem geklonten Git-Repository ausgeführt werden.

$ git clone https://github.com/mesonbuild/meson.git /path/to/sourcedir

Fehlerbehebung

Häufige Probleme

$ meson setup builddir
$ bash: /usr/bin/meson: No such file or directory

Beschreibung: Der Standard-Installationspräfix für die Installation des Python-Pip-Moduls ist möglicherweise nicht in der PATH-Umgebung Ihrer Shell enthalten. Der Standardinstallationsort variiert je nach Betriebssystem, Distribution und Python-Version.

Auflösung: Dieses Problem kann durch Ändern der Standard-Shell-Umgebung PATH behoben werden, um den Pfad einzuschließen, unter dem Pip die Binärdateien installiert hat. Dies kann z. B. /usr/local/bin oder /home/<benutzername>/.local/bin sein.

Hinweis: Es gibt andere Möglichkeiten, dieses Problem zu beheben, z. B. die Verwendung von Symlinks oder das Kopieren der Binärdateien in einen Standardpfad. Diese Methoden werden nicht empfohlen oder unterstützt, da sie die Interoperabilität der Paketverwaltung beeinträchtigen können.

Kompilieren eines Meson-Projekts

Der häufigste Anwendungsfall von Meson ist die Kompilierung von Code in einer Codebasis, an der Sie gerade arbeiten. Die Schritte sind sehr einfach.

$ cd /path/to/source/root
$ meson setup builddir && cd builddir
$ meson compile
$ meson test

Das Einzige, was zu beachten ist, ist, dass Sie ein separates Build-Verzeichnis erstellen müssen. Meson erlaubt es Ihnen nicht, Quellcode innerhalb Ihres Quellcode-Baums zu erstellen. Alle Build-Artefakte werden im Build-Verzeichnis gespeichert. Dies ermöglicht es Ihnen, mehrere Build-Bäume mit unterschiedlichen Konfigurationen gleichzeitig zu haben. Auf diese Weise werden generierte Dateien nicht versehentlich in die Versionskontrolle aufgenommen.

Um nach Codeänderungen neu zu kompilieren, geben Sie einfach meson compile ein. Der Build-Befehl ist immer derselbe. Sie können beliebige Änderungen an Quellcode und Build-Systemdateien vornehmen, und Meson wird diese erkennen und das Richtige tun. Wenn Sie optimierte Binärdateien erstellen möchten, verwenden Sie einfach das Argument --buildtype=debugoptimized, wenn Sie Meson ausführen. Es wird empfohlen, ein Build-Verzeichnis für nicht optimierte Builds und eines für optimierte Builds beizubehalten. Um eine beliebige Konfiguration zu kompilieren, wechseln Sie einfach in das entsprechende Build-Verzeichnis und führen Sie meson compile aus.

Meson fügt automatisch Compiler-Flags hinzu, um Debug-Informationen und Compiler-Warnungen zu aktivieren (d. h. -g und -Wall). Das bedeutet, dass sich der Benutzer nicht darum kümmern muss und sich stattdessen auf das Codieren konzentrieren kann.

Meson als Distribution-Packager verwenden

Distribution-Packager wünschen in der Regel die vollständige Kontrolle über die verwendeten Build-Flags. Meson unterstützt diesen Anwendungsfall nativ. Die zum Erstellen und Installieren von Meson-Projekten benötigten Befehle sind die folgenden.

$ cd /path/to/source/root
$ meson --prefix /usr --buildtype=plain builddir -Dc_args=... -Dcpp_args=... -Dc_link_args=... -Dcpp_link_args=...
$ meson compile -C builddir
$ meson test -C builddir
$ DESTDIR=/path/to/staging/root meson install -C builddir

Der Kommandozeilenschalter --buildtype=plain weist Meson an, keine eigenen Flags zur Befehlszeile hinzuzufügen. Dies gibt dem Packager die vollständige Kontrolle über die verwendeten Flags.

Dies ist sehr ähnlich zu anderen Build-Systemen. Der einzige Unterschied besteht darin, dass die Variable DESTDIR als Umgebungsvariable übergeben wird und nicht als Argument an meson install.

Da Distribution-Builds immer von Grund auf erfolgen, sollten Sie das Aktivieren von Unity-Builds für Ihre Pakete in Betracht ziehen, da diese schneller sind und besseren Code erzeugen. Es gibt jedoch viele Projekte, die nicht mit aktivierten Unity-Builds erstellt werden können. Die Entscheidung zur Verwendung von Unity-Builds muss daher vom Packager von Fall zu Fall getroffen werden.

Die Ergebnisse der Suche sind