Vydání systému sestavení Meson 1.11.0

Bylo zveřejněno vydání systému sestavování Meson 1.11.0, který se používá k sestavování projektů jako X.Org Server, Mesa, QEMU, Lighttpd, systemd, GStreamer, Wayland, GNOME a GTK. Mesonův kód je napsán v Pythonu a je licencován pod licencí 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 lze použít i jiné backendy, jako je Xcode a Visual Studio. 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).

Křížová kompilace a sestavování jsou podporovány v systémech Linux, Illumos/Solaris, FreeBSD, NetBSD, DragonFly BSD, Haiku, macOS a Windows pomocí kompilátorů GCC, Clang, Visual Studio a dalších. Projekty lze sestavovat v různých programovacích jazycích, včetně C, C++, Fortran, Java, D a Rust. Je podporován režim inkrementálního sestavení, který znovu sestavuje pouze komponenty přímo související se změnami provedenými od předchozího sestavení. Meson lze použít k vytváření opakovatelných sestavení, kde spuštění sestavení v různých prostředích vede ke generování zcela identických spustitelných souborů.

Hlavní inovace Meson 1.11:

  • Při volání metody rust.workspace() ve skriptech Meson je kořenový soubor Cargo.toml v projektu analyzován, aby se během sestavení správně aktivovaly příznaky funkcí definované v souboru Cargo.toml společném pro všechny pracovní prostory. Metoda rust.workspace() nyní navíc vrací objekt, který lze použít k získání seznamu příznaků funkcí a závislostí pro podprojekty a také ke spuštění sestavení cílů deklarovaných v souborech Cargo.toml.
  • Příkaz „meson dist“ má nyní volbu „-j“ (--num-processes) a proměnnou prostředí MESON_NUM_PROCESSES pro určení počtu procesů, které mají být spuštěny paralelně při sestavování a testování balíčků.
  • Parametr should_fail, který umožňuje úspěšné provedení testu při vrácení chyby, byl zastaralý a přejmenován na expected_fail. Byl přidán parametr expected_exitcode, který určuje kód úspěšného provedení testu jiný než 0.
  • Modul external_project na platformě Windows používá příkaz cygpath k převodu cest k souborům specifických pro Windows na cesty podobné Unixovým (např. z C:/path/to/configure na /path/to/configure).
  • Příkazy install_man a install_headers nyní podporují argument install_tag, což umožňuje vybrat soubory k instalaci na základě vlastních tagů, nikoli pouze tagů man a devel.
  • Přidán parametr link_early_args, který umožňuje zadat do příkazového řádku volby (například „-u“ nebo „--defsym“) při spuštění linkeru před výpisem objektů a knihoven.
  • Přidána konstanta "~", která je v souborech s popisem prostředí (souborech počítače) nahrazena domovským adresářem.
  • Ve výchozím nastavení příkaz „meson format“ zakazuje řazení souborů zadaných jako argumenty funkce files(). Chcete-li řazení povolit, použijte volbu sort_files.
  • Podpora verzí Pythonu starších než 3.10 byla ukončena. Meson 1.11.0 je poslední verzí, která podporuje Python 3.7, 3.8 a 3.9.
  • Přidána podpora pro nové funkce kompilátoru MPLAB XC32 C/C++ zavedeného ve verzi 5.0, jako je automatické zahrnutí optimalizací LTO a podpora standardů C2x a CPP23.

Zdroj: opennet.ru

Přidat komentář