Projekt Meson veröffentlichte die Version 1.11.0. Der Release fand statt am 13. April 2026 und setzt die Entwicklung eines der auffälligsten freien Build-Systeme fort, das in vielen Linux- und plattformübergreifenden Projekten eingesetzt wird.
Meson setzt traditionell auf hohe Geschwindigkeit, eine vorhersehbare Build-Beschreibung und eine vergleichsweise einfache DSL, während die neue Version hauptsächlich auf praktische Verbesserungen für reale Entwicklungsszenarien fokussiert ist.
Wichtige Änderungen in Meson 1.11.0:
- Unterstützung für das Parsen von übergeordneten Cargo.toml über workspace() im Rust-Modul;
- Unterstützung für link_args, add_project_link_arguments() und add_global_link_arguments() für Rust;
- neue Methode compiler_target() im Rust-Modul;
- Cython benötigt jetzt keine explizite Einbindung von C oder C++;
- neues Argument link_early_args für eine frühere Übergabe von Optionen an den Linker;
- meson dist erhielt Unterstützung für -j/—num-processes;
- install_man und install_headers unterstützen jetzt install_tag;
- Deduplication von OpenMP-Linker-Argumenten;
- automatische Erkennung von QT_DEBUG und QT_NO_DEBUG;
- Verbesserungen für Windows-Umgebungen und rc.exe.
Eine der bemerkenswertesten Änderungen betrifft Rust. Meson 1.11.0 kann übergeordnete Cargo.toml beim Aufruf von workspace() im Rust-Modul parsen, was es ermöglicht, Abhängigkeiten und Feature-Flags gemäß der Konfiguration des Cargo-Arbeitsbereichs aufzulösen. Dies macht die Integration mit Rust-Projekten deutlich reifer: Das zurückgegebene Objekt workspace erlaubt es, Informationen über Abhängigkeiten und Features für Cargo-Subprojekte zu erhalten und Ziele zu erstellen, die in Cargo.toml beschrieben sind.
Die Entwickler haben auch die Rust-Integration in Meson beim Linken erweitert. Ab Version 1.11.0 werden für Rust add_project_link_arguments(), add_global_link_arguments() und link_args unterstützt, die über rustc mit der Wrapper-Option -Clink-arg= übergeben werden. Darüber hinaus gibt es im Rust-Modul die Methode compiler_target(), die das Target-Triple des Compilers zurückgibt, was das Portieren von Szenarien erleichtert, die zuvor von Cargo-Variablen wie TARGET und HOST abhängig waren.
Eine weitere praktische Änderung betrifft Cython: jetzt ist keine explizite Einbindung von Sprachen mehr erforderlich. C или C++Dabei stellt Meson klar, dass diese Sprachen nur als interne Implementierungsdetails von Cython hinzugefügt werden, nicht als vollwertige Möglichkeit, herkömmliche native C/C++-Ziele parallel zu erstellen. Für die Benutzer ist dies in erster Linie eine Vereinfachung der Build-Konfiguration.
Die Veröffentlichung bringt auch Verbesserungen für eine feinere Kontrolle über das Linken und Installieren mit sich. Ziele, die das Linken durchführen, haben ein neues Argument link_early_args erhalten, um Optionen an den Linker vor Objekten und Bibliotheken zu übergeben — dies ist wichtig für Parameter wie -u oder —defsym, die sensibel auf die Reihenfolge reagieren. Zudem haben install_man und install_headers Unterstützung für install_tag erhalten, um eine flexiblere Verwaltung installierter Dateien über meson install —tags zu ermöglichen.
Besonders erwähnenswert ist die Entwicklung von Build-Begleitwerkzeugen. Das Team von meson dist akzeptiert jetzt -j und —num-processes, was die Steuerung der Anzahl paralleler Prozesse beim Überprüfen des Distributionspakets ermöglicht. Parallel dazu begann Meson, die Linker-Argumente von OpenMP, wie -fopenmp und -qopenmp, zu deduplizieren, und in den Qt-Modulen werden nun automatisch die Makros QT_DEBUG oder QT_NO_DEBUG je nach Build-Modus erkannt, was das Verhalten qmake näher bringt.
Es gibt auch Änderungen in der Kompatibilität mit spezifischen plattformspezifischen Szenarien. Im externen Projektmodul wird für Windows nun cygpath verwendet, um Pfade in das Unix-Format korrekt umzuwandeln, wenn mit Configure-Skripten in Umgebungen wie MSYS2 und Cygwin gearbeitet wird. Zudem kann windows.compile_resources nun Änderungen an Headern bei der Verwendung von rc.exe verfolgen und umgeht so eine lange bestehende Einschränkung dieses Resourcen-Compilers.
Insgesamt Meson 1.11.0 Es sieht nach einer Veröffentlichung ohne große Revolutionen aus, aber mit einer bemerkenswerten Anzahl an engineering-relevanten Verbesserungen. Der Hauptzweck dieser Version ist es, das Build-System für moderne Mixed-Language-Projekte zu erleichtern, besonders dort, wo Rust, Cython, Qt und traditionelle C/C++-Komponenten nebeneinander existieren. Für Entwickler ist dies eher kein Grund zur Überarbeitung der Infrastruktur, sondern ein sorgfältiges, aber nützliches Upgrade eines Werkzeugs, das schon lange Teil des alltäglichen Stacks freier Software ist.
Quelle: linux.org.ru
