Bylo zveřejněno vydání sestavení systému Meson 0.58, 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 0.58:
- Meson má vestavěné operace formátování řetězců. Namísto volání metody format můžete nyní hodnoty přímo dosazovat, například místo „'Řetězec @0@ pro formátování @1@'.format(n, m)“ můžete okamžitě zadat „f“ Řetězec @n@, který se má naformátovat @ m@'".
- Do řetězcových objektů byla přidána metoda „nahradit“, která provádí operaci nahrazení jednoho podřetězce jiným, například „s = s.replace(‘aaa‘, ‚bbb‘).“
- Přidána funkce "range(start, stop[, step])" pro vrácení objektu, který lze použít ve smyčce foreach, jako například "foreach i: range(15)".
- Byla implementována metoda meson.add_devenv(), která vám umožňuje přidat objekt environment() pro nastavení proměnných prostředí při použití příkazu "meson devenv", například pro nastavení proměnné prostředí s cestou k adresáři pluginů.
- Pro vývojová prostředí byl navržen nový příkaz: „meson devenv -C builddir [], který umožňuje spouštět příkaz v prostředí nakonfigurovaném pro spouštění projektů z adresáře sestavení (bez instalace).
- Ve výchozím nastavení je volba "-pipe" zastavena při spuštění všech podporovaných kompilátorů.
- Volání meson.add_dist_script() z podprojektů je povoleno.
- Poskytuje možnost spouštět metody append() a prepend() vícekrát na stejném objektu environment().
- Funkce error() umožňuje více než jeden argument oddělený mezerou (podobně jako warning() a message()).
- Přidána možnost "--skip-subprojects" pro selektivní přeskočení instalace dílčích projektů.
Samostatně si můžeme všimnout projektu Boson, jehož cílem je vytvořit přenosnou a jednoduchou implementaci skriptovacího jazyka pro sestavení Meson, napsaného v C namísto Pythonu. Projekt je stále v počáteční fázi vývoje a ještě není připraven na plnou montáž pracovních projektů. Kód je licencován pod licencí GPLv3 (původní Python Meson je licencován pod licencí Apache 2.0).
Zdroj: opennet.ru