Vydání systému sestavení Meson 0.52

zveřejněno sestavení vydání systému Mezon 0.52, 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).

Podporováno křížově kompilovat a stavět na Linuxu, Illumos/Solaris, FreeBSD, NetBSD, DragonFly BSD, Haiku, 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.52:

  • Přidána experimentální podpora pro Webassembly využívající Emscripten jako kompilátor;
  • Podpora platforem Illumos a Solaris byla výrazně vylepšena a uvedena do funkčního stavu;
  • Zajišťuje, že internacionalizační skripty založené na gettextu budou ignorovány, pokud systém nemá nainstalovanou sadu nástrojů gettext (dříve se při použití modulu i18n na systémech bez gettextu zobrazovala chyba);
  • Vylepšená podpora pro statické knihovny. Mnoho problémů při používání odinstalovaných statických knihoven bylo vyřešeno;
  • Přidána možnost používat slovníky k přiřazení proměnných prostředí. Při volání environment() lze nyní první prvek zadat jako slovník, ve kterém jsou proměnné prostředí definovány ve formě klíč/hodnota. Tyto proměnné budou přeneseny do environment_object, jako by byly individuálně nastaveny pomocí metody set(). Slovníky lze nyní také předávat různým funkcím, které podporují argument "env";
  • Přidána funkce "runtarget alias_target(název_cíle, dep1, ...)", která vytvoří nový cíl sestavení první úrovně, který lze volat s vybraným backendem sestavení (např. "ninja target_name"). Tento cíl sestavení nespouští žádné příkazy, ale zajišťuje sestavení všech závislostí;
  • Povoleno automatické nastavení proměnné prostředí PKG_CONFIG_SYSROOT_DIR během křížové kompilace, pokud je v sekci „[vlastnosti]“ nastavení sys_root;
  • Přidána možnost „--gdb-path“ pro určení cesty k ladicímu programu GDB při zadání možnosti „--gdb testname“ pro spuštění GDB se zadaným testovacím skriptem;
  • Přidána automatická detekce cílového sestavení cinkání pro spuštění tohoto linteru se všemi zdrojovými soubory. Cíl je vytvořen, pokud je v systému dostupný clang-tidy a soubor „.clang-tidy“ (nebo „_clang-tidy“) je definován v kořenovém adresáři projektu;
  • Přidána závislost ('bloky') pro použití v rozšíření Clang Bloky;
  • Pohledy linkeru a kompilátoru jsou oddělené, což umožňuje použití různých kombinací kompilátorů a linkerů;
  • Přidána metoda all_dependencies() do objektů SourceSet kromě metody all_sources();
  • V run_project_tests.py byla přidána možnost „--only“ pro selektivně spouštěné testy (například „python run_project_tests.py —only fortran python3“);
  • Funkce find_program() nyní umožňuje vyhledávat pouze požadované verze programu (verze je určena spuštěním programu s volbou „-version“);
  • Pro řízení exportu symbolů byla do funkce shared_module() přidána volba vs_module_defs, podobně jako shared_library();
  • Modul kconfig byl rozšířen o podporu configure_file() pro specifikaci vstupního souboru;
  • Přidána možnost zadat více vstupních souborů pro obslužné rutiny „command:“ do configure_file();
  • Příkaz „dist“ pro vytváření archivu byl přesunut do kategorie příkazů první úrovně (dříve byl příkaz svázán s ninjou). Přidána možnost „--formats“ pro definování typů archivů, které se mají vytvořit (např.
    "meson dist -formats=xztar,zip").

Zdroj: opennet.ru

Přidat komentář