Projekt Meson. vydal verziu 1.11.0. Udalosť sa konala 13. apríla 2026 a pokračuje v rozvoji jedného z najvýraznejších voľných systémov zostavovania, používaného v mnohých Linuxových a medzi-platformových projektoch.
Meson tradične staví na vysokú rýchlosť, predvídateľný popis zostavy a relatívne jednoduchý DSL, a nový release sa prevažne zameriava na praktické vylepšenia pre reálne scenáre vývoja.
Kľúčové zmeny v Meson 1.11.0:
- podpora analýzy najvyššej úrovne Cargo.toml prostredníctvom workspace() v Rust module;
- podpora link_args, add_project_link_arguments() a add_global_link_arguments() pre Rust;
- nová metóda compiler_target() v Rust module;
- Cython už nevyžaduje explicitné zahrnutie C alebo C++;
- nový argument link_early_args na skorší prenos možností linkeru;
- meson dist získal podporu -j/—num-processes;
- install_man a install_headers teraz podporujú install_tag;
- deduplikácia OpenMP linker arguments;
- automatické určenie QT_DEBUG a QT_NO_DEBUG;
- vylepšenia pre Windows prostredia a rc.exe.
Jedna z najvýraznejších zmien sa týka Rust. Meson 1.11.0 sa naučil analyzovať najvyššiu úroveň Cargo.toml pri volaní workspace() v Rust module, vďaka čomu sú závislosti a feature-flags teraz riešené v súlade s konfiguráciou pracovného priestoru Cargo. To robí integráciu s Rust projektmi podstatne zrelejšou: vracaný objekt workspace umožňuje získať informácie o závislostiach a features pre Cargo subprojekty, ako aj zostavovať ciele opísané v Cargo.toml.
Vývojári tiež rozšírili prácu Meson s Rust na etape linkovania. Od verzie 1.11.0 sú pre Rust podporované add_project_link_arguments(), add_global_link_arguments() a link_args, ktoré sú prenášané cez rustc s obalom -Clink-arg=. Okrem toho sa v Rust module objavila metóda compiler_target(), ktorá vracia target triple kompilátora, čo zjednodušuje prenos scenárov, ktoré boli predtým viazané na premenné Cargo ako TARGET a HOST.
Ďalšia praktická zmena sa týka Cython: teraz na jeho prácu už nie je potrebné explicitne zahrňovať jazyky C alebo C++. Pri tom Meson uvádza, že takéto jazyky sú pridávané iba ako interná súčasť implementácie Cython, nie ako plnohodnotná možnosť paralelne zostavovať bežné natívne C/C++ ciele. Pre používateľov je to predovšetkým zjednodušenie konfigurácie zostavy.
Vydanie obsahuje aj vylepšenia zamerané na jemnejšiu kontrolu prepojenia a inštalácie. Ciele, ktoré vykonávajú prepojenie, teraz majú nový argument link_early_args, ktorý umožňuje prenášať možnosti prepojiť pred objektmi a knihovnami — to je dôležité pre parametre ako -u alebo —defsym, ktoré sú citlivé na poradie. Taktiež install_man a install_headers získali podporu install_tag, aby sa s inštalovanými súbormi dalo flexibilnejšie manipulovať prostredníctvom meson install —tags.
Osobitnú pozornosť si zaslúži rozvoj nástrojov na podporu zostavovania. Tím meson dist teraz akceptuje -j a —num-processes, čo umožňuje riadiť počet paralelných procesov pri kontrole distribúcie. Zároveň Meson začal deduplovať argumenty linkeru OpenMP, ako -fopenmp a -qopenmp, a v moduloch Qt sa teraz automaticky určujú makrá QT_DEBUG alebo QT_NO_DEBUG v závislosti od režimu zostavovania, čím sa správanie približuje k qmake.
Zmeny sú aj v kompatibilite so špecifickými platformovými scénármi. V module external_project pre Windows sa teraz používa cygpath, aby správne transformovalo cesty na Unixový formát pri práci s configure skriptmi v prostrediach ako MSYS2 a Cygwin. Okrem toho windows.compile_resources teraz dokáže sledovať zmeny hlavičiek pri používaní rc.exe, čím sa obchádza dlhodobé obmedzenie tohto kompilátora zdrojov.
Celkovo Meson 1.11.0 vyzerá ako vydanie bez veľkých revolúcií, ale s významným množstvom inžinierskych vylepšení. Hlavný zmysel vydania je urobiť systém zostavovania pohodlnejším pre moderné mixed-language projekty, najmä tam, kde sa nachádzajú Rust, Cython, Qt a tradičné C/C++ komponenty. Pre vývojárov to skôr nie je dôvod na prepisovanie infraštruktúry, ale starostlivá, no užitočná aktualizácia nástroja, ktorý sa už dávno stal súčasťou každodenného zásobníka voľného softvéru.
Zdroj: linux.org.ru
