Vydanie systému zostavy Meson 1.3

Bolo zverejnené vydanie zostavovacieho systému Meson 1.3.0, ktorý sa používa na zostavovanie projektov ako X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME a GTK. Kód Meson je napísaný v jazyku Python a je licencovaný pod licenciou Apache 2.0.

Kľúčovým cieľom vývoja spoločnosti Meson je poskytnúť vysokorýchlostný proces montáže v kombinácii s pohodlím a jednoduchosťou použitia. Namiesto make zostava štandardne používa súpravu nástrojov Ninja, ale možno použiť aj iné backendy, ako napríklad xcode a VisualStudio. Systém má vstavaný obslužný program závislostí na viacerých platformách, ktorý vám umožňuje používať Meson na zostavovanie balíkov pre distribúcie. Pravidlá zostavovania sú nastavené v zjednodušenom doménovo špecifickom jazyku, sú dobre čitateľné a zrozumiteľné pre používateľa (podľa predstavy autorov by mal vývojár venovať písaním pravidiel minimum času).

Podporuje sa krížová kompilácia a budovanie na Linuxe, Illumos/Solaris, FreeBSD, NetBSD, DragonFly BSD, Haiku, macOS a Windows pomocou GCC, Clang, Visual Studio a ďalších kompilátorov. Je možné vytvárať projekty v rôznych programovacích jazykoch, vrátane C, C++, Fortran, Java a Rust. Podporovaný je režim prírastkového zostavovania, v ktorom sa prestavujú iba komponenty, ktoré priamo súvisia so zmenami vykonanými od poslednej zostavy. Meson je možné použiť na generovanie opakovateľných zostavení, kde spustenie zostavy v rôznych prostrediach vedie k úplne identickým spustiteľným súborom.

Hlavné inovácie Meson 1.3:

  • Pridaná možnosť „werror: true“ do metód kontroly kompilátora kompilátor.compiles(), kompilátor.links() a kompilátor.run(), ktorá považuje varovania kompilátora za chyby (môže sa použiť na kontrolu, či je kód zostavený bez varovaní ).
  • Pridaná metóda has_define na kontrolu definície symbolu preprocesorom.
  • Do funkcie configure_file() bol pridaný parameter macro_name, ktorý pridáva ochranu makier pre dvojité pripojenia prostredníctvom „#include“ („include guards“), navrhnutý v štýle makier v jazyku C (zjednodušuje vytváranie konfiguračných súborov s dynamickým názvy makier).
  • Do configure_file() bol pridaný nový výstupný formát - JSON ("output_format: json").
  • Do parametrov c_std a cpp_std bola pridaná možnosť používať zoznamy hodnôt (napríklad „default_options: 'c_std=gnu11,c11′“).
  • V moduloch, ktoré používajú CustomTarget na spracovanie súborov, bola pridaná možnosť prispôsobiť výstup správ pomocou pomôcky ninja.
  • Build_target "jar" bolo zastarané a namiesto toho sa odporúča volanie "jar()".
  • Do metódy generator.process() bol pridaný parameter 'env' na nastavenie premennej prostredia, prostredníctvom ktorej bude generátor spracovávať vstup.
  • Pri zadávaní cieľových názvov zostavení spojených so spustiteľnými súbormi môžu prípony ako "executable('foo', 'main.c', name_suffix: 'bar')" generovať ďalšie spustiteľné súbory v rovnakom adresári.
  • Pridaný parameter „vs_module_defs“ do funkcie exectuable() na použitie súboru def, ktorý definuje zoznam funkcií odovzdaných do shared_module().
  • Pridaný parameter 'default_options' do funkcie find_program() na nastavenie predvolených možností pre záložný podprojekt.
  • Pridaná metóda fs.relative_to(), ktorá vracia relatívnu cestu pre prvý argument vzhľadom na druhý, ak prvá cesta existuje. Napríklad "fs.relative_to('/prefix/lib', '/prefix/bin') == '../lib')".
  • Do funkcií install_data(), install_headers() a install_subdir() bol pridaný parameter following_symlinks; ak je nastavený, budú sa nasledovať symbolické odkazy.
  • Do metódy int.to_string() bol pridaný parameter „fill“ na postupné vypĺňanie reťazca počiatočnými nulami. Napríklad volanie message(n.to_string(fill: 3)) pre n=4 vytvorí reťazec "004".
  • Pridaný nový cieľ, clang-tidy-fix, ktorý špecifikuje spustenie nástroja clang-tidy s príznakom "-fix".
  • Do príkazu kompilácie bola pridaná možnosť zadať príponu (TARGET_SUFFIX) cieľa zostavy ([PATH_TO_TARGET/]TARGET_NAME.TARGET_SUFFIX[:TARGET_TYPE]).
  • Pridaná premenná prostredia MESON_PACKAGE_CACHE_DIR na prepísanie cesty k vyrovnávacej pamäti balíkov (podprojekty/vyrovnávacia pamäť balíkov), čo vám napríklad umožňuje používať zdieľanú vyrovnávaciu pamäť v niekoľkých projektoch.
  • Pridaný príkaz "meson setup --clearcache" na vymazanie trvalej vyrovnávacej pamäte.
  • Podpora pre kľúčové slovo „required“ bola pridaná do všetkých metód kontroly kompilátora „has_*“, napríklad namiesto „assert(cc.has_function('some_function'))“ môžete teraz zadať „cc.has_function('some_function' , povinné: true)“.
  • Do funkcií shared_library(), static_library(), library() a shared_module() bolo pridané nové kľúčové slovo rust_abi, ktoré by sa malo používať namiesto zastaraného rust_crate_type.

Zdroj: opennet.ru

Pridať komentár