Klíčovým cílem vývoje Meson je poskytnout vysokou rychlost montážního procesu v kombinaci s pohodlím a snadností použití. Místo nástroje make používá výchozí sestavení sadu nástrojů
Je podporována křížová kompilace a sestavení na Linuxu, macOS a Windows pomocí GCC, Clang, Visual Studio a dalších kompilátorů. Je možné stavět projekty v různých programovacích jazycích, včetně C, C++, Fortran, Java a Rust. Je podporován režim přírůstkového sestavení, ve kterém jsou znovu sestavovány pouze komponenty přímo související se změnami provedenými od posledního sestavení. Meson lze použít ke generování opakovatelných sestavení, ve kterých spuštění sestavení v různých prostředích vede ke generování zcela identických spustitelných souborů.
hlavní
- Přidána podpora pro transparentní sestavování stávajících projektů, které používají sestavení skriptů CMake. Meson nyní může přímo vytvářet jednoduché dílčí projekty (jako jsou jednotlivé knihovny) pomocí modulu CMake, podobně jako standardní dílčí projekty (včetně dílčích projektů CMake lze umístit do adresáře dílčích projektů);
- U všech použitých kompilátorů je zahrnuto předběžné testování prostřednictvím sestavování a provádění jednoduchých testovacích souborů (kontrola zdravého rozumu), neomezující se na testování uživatelsky zadaných příznaků pro cross-kompilátory (od nynějška se kontrolují i kompilátory nativní pro aktuální platformu) .
- Přidána možnost definovat volby příkazového řádku používané během křížové kompilace s vazbou zadáním předpony platformy před volbu. Dříve možnosti příkazového řádku pokrývaly pouze nativní sestavení a nebylo možné je zadat pro křížovou kompilaci. Volby příkazového řádku se nyní použijí bez ohledu na to, zda vytváříte nativní nebo křížovou kompilaci, čímž je zajištěno, že nativní a křížová sestavení poskytují stejné výsledky;
- Přidána možnost zadat příznak „--cross-file“ více než jednou na příkazovém řádku pro výpis více křížových souborů;
- Přidána podpora pro kompilátor ICL (Intel C/C++ Compiler) pro platformu Windows (ICL.EXE a ifort);
- Přidána podpora počáteční sady nástrojů pro CPU Xtensa (xt-xcc, xt-xc++, xt-nm);
- Do objektu „dependency“ byla přidána metoda „get_variable“, která umožňuje získat hodnotu proměnné bez zohlednění typu aktuální závislosti (například dep.get_variable(pkg-config : 'var- name', cmake: 'COP_VAR_NAME));
- Přidán nový argument možností cílového sestavení „link_language“, který explicitně specifikuje jazyk použitý při volání linkeru. Například hlavní Fortran program by mohl volat C/C++ kód, který by automaticky vybral C/C++, když by měl být použit Fortran linker;
- Zacházení s příznaky preprocesoru CPPFLAGS bylo změněno. Zatímco Meson dříve ukládal CPPFLAGS a příznaky kompilace specifické pro daný jazyk (CFLAGS, CXXFLAGS) odděleně, jsou nyní zpracovávány neoddělitelně a příznaky uvedené v CPPFLAGS se používají jako další zdroj kompilačních příznaků pro jazyky, které je podporují;
- Výstup custom_target a custom_target[i] lze nyní použít jako argumenty v operacích link_with a link_whole;
- Generátory nyní mají možnost specifikovat další závislosti pomocí možnosti „depends“ (například generator(program_runner, output: ['@[chráněno e-mailem]'], závisí: exe));
- Přidána statická volba do find_library, která umožní vyhledávání zahrnovat pouze staticky propojené knihovny;
- Pro python.find_installation byla přidána možnost určit přítomnost daného modulu Python pro konkrétní verzi Pythonu;
- Přidán nový modul unstable-kconfig pro analýzu souborů kconfig;
- Přidán nový příkaz „subprojects foreach“, který vezme příkaz s argumenty a spustí jej ve všech adresářích podprojektů;
Zdroj: opennet.ru