Vydání systému sestavení Meson 1.1

Bylo zveřejněno vydání sestavení systému Meson 1.1.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.1:

  • Do deklarace_dependency() byl přidán nový argument "objects:" pro připojení objektů přímo ke spustitelným souborům jako interní závislosti, které nevyžadují link_who.
  • Příkaz "meson devenv --dump" má volitelnou možnost zadat soubor, do kterého se budou zapisovat proměnné prostředí, namísto výstupu do standardního výstupního proudu.
  • Přidány metody FeatureOption.enable_if a FeatureOption.disable_if, které usnadňují vytváření podmínek při přípravě na předávání parametrů do funkce dependency(). opt = get_option('feature').disable_if(not foo, error_message : 'Nelze povolit funkci, když není povoleno i foo') dep = dependency('foo', required: opt)
  • Je povoleno předávat vygenerované objekty mezi argumenty "objects:".
  • Funkce projektu podporuje instalaci souborů s informacemi o licencích projektu.
  • Provedení "sudo meson install" zajistí resetování oprávnění během přestavby pro cílové platformy.
  • Příkaz "meson install" poskytuje možnost zadat samostatný obslužný program pro získání oprávnění uživatele root (například můžete vybrat polkit, sudo, opendoas nebo $MESON_ROOT_CMD). Spuštění "meson install" v neinteraktivním režimu se již nepokouší zvýšit oprávnění.
  • Přidána podpora pro čtení voleb ze souboru meson.options místo meson_options.txt.
  • Poskytováno přesměrování výstupu informací o průběhu introspekce na stderr.
  • Byl přidán nový "žádný" backend (--backend=none) pro vytváření projektů, které mají pouze pravidla instalace a žádná pravidla sestavování.
  • Byla přidána nová závislost pybind11, aby dependency('pybind11') fungovala s pkg-config a cmake bez použití skriptu pybind11-config.
  • Volby "--reconfigure" a "--wipe" (meson setup --reconfigure builddir a meson setup --wipe builddir ) jsou povoleny s prázdným builddir.
  • meson.add_install_script() přidal podporu pro klíčové slovo dry_run, které vám umožňuje spouštět vlastní instalační skripty při volání "meson install --dry-run".

Zdroj: opennet.ru

Přidat komentář