Projet Meson a publié une version 1.11.0. La sortie a eu lieu le 13 avril 2026 et continue de développer l'un des systèmes de build open source les plus notables, utilisé dans de nombreux projets Linux et multiplateformes.
Meson mise traditionnellement sur une vitesse élevée, une description de build prévisible et un DSL relativement simple, tandis que la nouvelle version se concentre principalement sur des améliorations pratiques pour des scénarios de développement réels.
Changements clés dans Meson 1.11.0 :
- prise en charge de l'analyse du Cargo.toml de haut niveau via workspace() dans le module Rust ;
- prise en charge de link_args, add_project_link_arguments() et add_global_link_arguments() pour Rust ;
- nouvelle méthode compiler_target() dans le module Rust ;
- Cython ne nécessite plus l'inclusion explicite de C ou C++ ;
- nouvel argument link_early_args pour transmettre plus tôt les options au linker ;
- meson dist a ajouté le support de -j/--num-processes ;
- install_man et install_headers prennent désormais en charge install_tag ;
- dé-duplication des arguments du linker OpenMP ;
- détection automatique de QT_DEBUG et QT_NO_DEBUG ;
- améliorations pour les environnements Windows et rc.exe.
Un des changements les plus notables concerne Rust. Meson 1.11.0 a appris à analyser le Cargo.toml de haut niveau lors de l'appel à workspace() dans le module Rust, ce qui permet de résoudre les dépendances et les indicateurs de fonctionnalités en fonction de la configuration de l'espace de travail Cargo. Cela rend l'intégration avec les projets Rust sensiblement plus mûre : l'objet renvoyé par workspace permet d'obtenir des informations sur les dépendances et les fonctionnalités pour les sous-projets Cargo, ainsi que de construire des cibles décrites dans le Cargo.toml.
Les développeurs ont également élargi le support de Meson avec Rust au stade de la liaison. À partir de la version 1.11.0, pour Rust, les méthodes add_project_link_arguments(), add_global_link_arguments() et link_args sont prises en charge, lesquelles sont passées via rustc avec l'enveloppe -Clink-arg=. De plus, le module Rust a introduit la méthode compiler_target(), qui renvoie le triple cible du compilateur, facilitant le portage de scénarios précédemment liés à des variables Cargo telles que TARGET et HOST.
Un autre changement appliqué concerne Cython: il n'est plus nécessaire d'inclure explicitement les langages C ou C++. Cependant, Meson précise que ces langages sont ajoutés uniquement comme détail d'implémentation interne de Cython, et non comme une véritable capacité de compilation parallèles de cibles natives C/C++. Pour les utilisateurs, cela représente avant tout une simplification de la configuration de build.
La version inclut des améliorations conçues pour un contrôle plus précis des liaisons et des installations. Les cibles effectuant des liaisons disposent d'un nouvel argument link_early_args, permettant de transmettre des options au linker avant les objets et les bibliothèques — cela est important pour des paramètres tels que -u ou —defsym, sensibles à l'ordre. De plus, install_man et install_headers ont reçu le support d'install_tag, afin de gérer les fichiers installés de manière plus flexible via meson install —tags.
Il convient de souligner le développement des outils d'accompagnement de la construction. L'équipe meson dist accepte désormais -j et —num-processes, permettant de gérer le nombre de processus parallèles lors de la vérification de la distribution. Parallèlement, Meson a commencé à dédupliquer les arguments de linker OpenMP, tels que -fopenmp et -qopenmp, et dans les modules Qt, les macros QT_DEBUG ou QT_NO_DEBUG sont désormais définies automatiquement selon le mode de construction, rapprochant ainsi le comportement de qmake.
Des changements ont également été apportés à la compatibilité avec des scénarios spécifiques aux plateformes. Dans le module external_project pour Windows, cygpath est désormais utilisé pour convertir correctement les chemins au format Unix lors de l'utilisation de scripts configure dans des environnements tels que MSYS2 et Cygwin. De plus, windows.compile_resources peut maintenant suivre les modifications des en-têtes lors de l'utilisation de rc.exe, contournant une ancienne limitation de ce compilateur de ressources.
Dans l'ensemble Meson 1.11.0 Cela semble être une version sans révolutions fracassantes, mais avec un nombre significatif d'améliorations ingénieuses. Le but principal de cette version est de rendre le système de construction plus pratique pour les projets modernes en langage mixte, en particulier ceux où cohabitent Rust, Cython, Qt et des composants C/C++ traditionnels. Pour les développeurs, il ne s'agit pas d'une raison de réécrire l'infrastructure, mais d'une mise à jour soignée et utile d'un outil qui fait déjà partie intégrante de la pile quotidienne des logiciels libres.
Source : linux.org.ru
