Projekt Meson hat eine Version veröffentlicht 1.11.0. Die Veröffentlichung fand am 13. April 2026 statt und entwickelt eines der bemerkenswertesten freien Build-Systeme weiter, das in vielen Linux- und plattformübergreifenden Projekten verwendet wird.
Meson setzt traditionell auf hohe Geschwindigkeit, vorhersehbare Build-Beschreibungen und eine vergleichsweise einfache DSL, wobei 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 oberen 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 erfordert keine explizite Einbindung von C oder C++ mehr;
- neues Argument link_early_args für eine frühere Übergabe von Optionen an den Linker;
- meson dist hat Unterstützung für -j/—num-processes erhalten;
- install_man und install_headers unterstützen jetzt install_tag;
- Deduplication der OpenMP-Linker-Argumente;
- automatische Erkennung von QT_DEBUG und QT_NO_DEBUG;
- Verbesserungen für Windows-Umgebungen und rc.exe.
Eine der auffälligsten Änderungen betrifft Rust. Meson 1.11.0 kann nun die oberen Cargo.toml beim Aufruf von workspace() im Rust-Modul parsen, wodurch Abhängigkeiten und Feature-Flags nun gemäß der Konfiguration des Cargo-Arbeitsbereichs aufgelöst werden. Dies macht die Integration mit Rust-Projekten deutlich reifer: Das zurückgegebene Objekt workspace ermöglicht es, Informationen über Abhängigkeiten und Features für Cargo-Subprojekte zu erhalten sowie Ziele, die in Cargo.toml beschrieben sind, zu erstellen.
Die Entwickler haben auch die Funktionalität von Meson mit Rust während der Link-Phase erweitert. Ab Version 1.11.0 wird für Rust die Unterstützung von add_project_link_arguments(), add_global_link_arguments() und link_args angeboten, 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 die Portierung von Szenarien erleichtert, die zuvor an Cargo-Variablen wie TARGET und HOST gebunden waren.
Eine weitere praktische Änderung betrifft Cython: für die Arbeit mit ihm ist nun keine explizite Einbindung von Sprachen mehr erforderlich C oder C++. Dabei erwähnt Meson, dass solche 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 bedeutet dies vor allem eine Vereinfachung der Build-Konfiguration.
Im Release sind auch Verbesserungen enthalten, die auf eine genauere Kontrolle der Linkerstellung und Installation abzielen. Für Ziele, die die Verlinkung durchführen, gibt es ein neues Argument link_early_args, das es ermöglicht, Optionen an den Linker vor den Objekten und Bibliotheken zu übergeben — das ist wichtig für Parameter wie -u oder —defsym, die empfindlich auf die Reihenfolge reagieren. Außerdem haben install_man und install_headers Unterstützung für install_tag erhalten, sodass die installierten Dateien flexibler über meson install —tags verwaltet werden können.
Besonders erwähnenswert ist die Entwicklung der Werkzeuge zur Unterstützung des Build-Prozesses. Das Team von meson dist akzeptiert jetzt -j und —num-processes, was die Kontrolle der Anzahl paralleler Prozesse bei der Überprüfung des Distribution ermöglicht. Gleichzeitig hat Meson begonnen, die Linker-Argumente von OpenMP, wie -fopenmp und -qopenmp, zu deduplizieren, und in den Qt-Modulen werden jetzt automatisch die Makros QT_DEBUG oder QT_NO_DEBUG abhängig vom Build-Modus erkannt, was das Verhalten näher an qmake bringt.
Es gibt auch Änderungen in der Kompatibilität mit spezifischen plattformabhängigen Szenarien. Im Modul external_project wird jetzt für Windows cygpath verwendet, um Pfade korrekt im Unix-Format bei der Arbeit mit Configure-Skripten in Umgebungen wie MSYS2 und Cygwin zu konvertieren. Darüber hinaus kann windows.compile_resources jetzt Änderungen an den Headern bei der Verwendung von rc.exe verfolgen und umgeht damit eine langjährige Einschränkung dieses Ressourcencompilers.
Im Allgemeinen Meson 1.11.0 Es sieht zwar nach einem Release ohne große Revolutionen aus, aber mit einer bemerkenswerten Anzahl an ingenieurtechnisch bedeutenden Verbesserungen. Der Hauptzweck des Releases besteht darin, das Build-System für moderne Mixed-Language-Projekte benutzerfreundlicher zu gestalten, insbesondere dort, wo Rust, Cython, Qt und traditionelle C/C++-Komponenten nebeneinander existieren. Für Entwickler ist dies eher kein Anlass, die Infrastruktur neu zu schreiben, sondern ein feines, aber nützliches Update eines Werkzeugs, das längst Teil des alltäglichen Stacks an freier Software geworden ist.
Quelle: linux.org.ru
