Projekt Meson vydal verzi 1.11.0. Uvedení proběhlo 13. dubna 2026 a pokračuje ve vývoji jednoho z nejvýraznějších svobodných systémů pro sestavování, který je používán v mnoha projektech Linux a multiplatformních projektech.
Meson tradičně sází na vysokou rychlost, předvídatelný popis sestavení a relativně jednoduchý DSL, a nová verze se zaměřuje především na praktické vylepšení pro skutečné scénáře vývoje.
Hlavní změny v Meson 1.11.0:
- podpora analýzy vyšší úrovně Cargo.toml přes workspace() v Rust modulu;
- podpora link_args, add_project_link_arguments() a add_global_link_arguments() pro Rust;
- nová metoda compiler_target() v Rust modulu;
- Cython již nevyžaduje explicitní zahrnutí C nebo C++;
- nový argument link_early_args pro včasné předávání možností linkeru;
- meson dist nyní podporuje -j/--num-processes;
- install_man a install_headers nyní podporují install_tag;
- deduplicace argumentů linkeru OpenMP;
- automatické rozpoznání QT_DEBUG a QT_NO_DEBUG;
- vylepšení pro Windows prostředí a rc.exe.
Jedna z nejvýznamnějších změn se týká Rust. Meson 1.11.0 se naučil analyzovat vyšší úroveň Cargo.toml při volání workspace() v Rust modulu, díky čemuž jsou závislosti a flagy funkcí nyní vyřešeny podle konfigurace pracovního prostoru Cargo. To dělá integraci s Rust projekty výrazně dospělejší: vrácený objekt workspace umožňuje získat informace o závislostech a funkcích pro Cargo subprojekty, a také sestavit cíle uvedené v Cargo.toml.
Vývojáři také rozšířili práci Meson s Rust během fáze linkování. Od verze 1.11.0 jsou pro Rust podporovány add_project_link_arguments(), add_global_link_arguments() a link_args, které jsou předány přes rustc s obálkou -Clink-arg=. Navíc se v Rust modulu objevila metoda compiler_target(), která vrací cílový trojici kompilátoru, což usnadňuje přenos skriptů, které byly předtím vázány na proměnné Cargo, jako TARGET a HOST.
Další praktická změna se týká Cython: nyní pro něj již není potřeba explicitně zahrnovat jazyky C nebo C++. Přitom Meson uvádí, že tyto jazyky jsou přidávány pouze jako vnitřní detail implementace Cythonu, nikoli jako plnohodnotná možnost paralelně sestavit běžné native C/C++ cíle. Pro uživatele to znamená především zjednodušení konfigurace sestavení.
Do vydání byly zahrnuty i vylepšení zaměřená na jemnější kontrolu linkování a instalace. Cíle provádějící linkování nyní mají nový argument link_early_args, který umožňuje předávat možnosti linkeru před objekty a knihovnami — to je důležité pro parametry jako -u nebo —defsym, které jsou citlivé na pořadí. Také install_man a install_headers nyní podporují install_tag, aby bylo možné flexibilněji spravovat nainstalované soubory pomocí meson install —tags.
Samostatně stojí za zmínku rozvoj nástrojů pro správu sestavení. Tým meson dist nyní přijímá -j a —num-processes, což umožňuje řídit počet paralelních procesů při kontrole distribučního balíčku. Současně Meson začal deduplikovat linkerové argumenty OpenMP, jako jsou -fopenmp a -qopenmp, a v modulech Qt nyní automaticky určují makra QT_DEBUG nebo QT_NO_DEBUG v závislosti na režimu sestavení, což přibližuje chování k qmake.
Změny se týkají také kompatibility se specifickými platformovými scénáři. V modulu external_project pro Windows nyní používá cygpath pro správnou konverzi cest do Unixového formátu při práci s configure skripty v prostředích jako MSYS2 a Cygwin. Kromě toho windows.compile_resources nyní umí sledovat změny hlaviček při použití rc.exe, obcházejíc dlouhodobé omezení tohoto kompilátoru prostředků.
Celkově Meson 1.11.0 Vypadá to jako vydání bez velkých revolucí, ale s výrazným množstvím inženýrsky významných vylepšení. Hlavní smysl vydání je učinit systém sestavení pohodlnější pro moderní mixed-language projekty, zejména tam, kde vedle sebe existují Rust, Cython, Qt a tradiční komponenty C/C++. Pro vývojáře to spíše není důvod k přepsání infrastruktury, ale pečlivá, ale užitečná aktualizace nástroje, který se již dlouho stal součástí každodenního stacku volného softwaru.
Zdroj: linux.org.ru
