Vydání systému sestavení Meson 0.51

zveřejněno sestavení vydání systému Mezon 0.51, který se používá k vytváření projektů, jako jsou X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME a GTK+. Kód Meson je napsán v Pythonu a dodáváno licencováno pod Apache 2.0.

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ů Ninja, ale je možné použít i jiné backendy, jako je xcode a VisualStudio. Systém má vestavěný obslužný program závislostí pro více platforem, který vám umožňuje používat Meson k vytváření balíčků pro distribuce. Pravidla sestavení jsou specifikována ve zjednodušeném jazyce specifickém pro doménu, jsou vysoce čitelná a srozumitelná pro uživatele (jak zamýšleli autoři, vývojář by měl psaním pravidel věnovat minimum času).

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í inovace Mezon 0.51:

  • 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

Přidat komentář