Vydání systému sestavení Meson 1.0

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

Klíčovým cílem vývoje společnosti Meson je poskytnout vysokorychlostní proces montáže v kombinaci s pohodlím a snadným použitím. Místo make používá sestavení ve výchozím nastavení sadu nástrojů Ninja, ale lze 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 nastavena ve zjednodušeném doménově specifickém jazyce, jsou dobře čitelná a uživatelsky srozumitelná (podle představy autorů by měl vývojář věnovat psaní pravidel minimum času).

Je podporována křížová kompilace a sestavení 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, které přímo souvisí se změnami provedenými od posledního sestavení. Meson lze použít ke generování opakovatelných sestavení, kde spuštění sestavení v různých prostředích vede ke zcela identickým spustitelným souborům.

Hlavní inovace Meson 1.0:

  • Modul pro stavební projekty v jazyce Rust byl prohlášen za stabilní. Tento modul se používá v projektu Mesa ke stavbě komponent napsaných v Rustu.
  • Možnost předpony, kterou podporuje většina kontrolních funkcí kompilátoru, implementuje schopnost zpracovávat pole jiná než řetězce. Nyní můžete například zadat: cc.check_header('GL/wglew.h', prefix : ['#include ', '#zahrnout '])
  • Byl přidán nový argument "--workdir", který vám umožní přepsat pracovní adresář. Chcete-li například místo pracovního adresáře použít aktuální adresář, můžete spustit: meson devenv -C builddir --workdir .
  • Nové operátory "in" a "not in" jsou navrženy pro určení výskytu podřetězce v řetězci, podobně jako dříve dostupná kontrola výskytu prvku v poli nebo slovníku. Například: fs = import('fs') if 'something' in fs.read('somefile') # True endif
  • Přidána možnost "warning-level=everything" pro zapnutí výstupu všech dostupných varování kompilátoru (v clang a MSVC používá -Weverything a /Wall a v GCC jsou zahrnuta samostatná varování, zhruba odpovídající režimu -Weverything v clang).
  • Metoda rust.bindgen implementuje schopnost zpracovat argument "dependencies" pro předání cest k závislostem, které by měly být zpracovány kompilátorem.
  • Funkce java.generate_native_headers byla zastaralá a přejmenována na java.native_headers, aby odpovídala obecnému stylu pojmenování funkcí Meson.

Zdroj: opennet.ru

Přidat komentář