Vydání montážního systému Meson 0.58. Projekt vytvoření implementace Meson v jazyce C

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

Přidat komentář