Vydanie systému zostavy Meson 1.1

Bolo zverejnené vydanie zostavovacieho systému Meson 1.1.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.1:

  • Nový argument "objects:" bol pridaný do deklarácie_závislosti() na pripojenie objektov priamo k spustiteľným súborom ako interné závislosti, ktoré nevyžadujú link_who.
  • Príkaz "meson devenv --dump" má voliteľnú možnosť zadať súbor, do ktorého sa majú zapisovať premenné prostredia, namiesto výstupu do štandardného výstupného prúdu.
  • Pridané metódy FeatureOption.enable_if a FeatureOption.disable_if na uľahčenie vytvárania podmienok pri príprave na odovzdávanie parametrov do funkcie dependency(). opt = get_option('feature').disable_if(not foo, error_message : 'Nie je možné aktivovať funkciu, keď nie je povolená aj funkcia foo') dep = dependency('foo', required: opt)
  • Je povolené odovzdávať vygenerované objekty medzi argumenty "objects:".
  • Funkcia projektu podporuje inštaláciu súborov s informáciami o licenciách projektu.
  • Vykonaním príkazu "sudo meson install" sa zabezpečí reset privilégií počas prestavby pre cieľové platformy.
  • Príkaz "meson install" poskytuje možnosť zadať samostatný obslužný program na získanie oprávnení typu root (napríklad môžete vybrať polkit, sudo, opendoas alebo $MESON_ROOT_CMD). Spustenie "meson install" v neinteraktívnom režime sa už nepokúša o zvýšenie privilégií.
  • Pridaná podpora pre možnosti čítania zo súboru meson.options namiesto meson_options.txt.
  • Poskytnuté presmerovanie výstupu informácií o priebehu introspekcie na stderr.
  • Bol pridaný nový "žiadny" backend (--backend=none) na vytváranie projektov, ktoré majú iba pravidlá inštalácie a žiadne pravidlá zostavovania.
  • Bola pridaná nová závislosť pybind11, aby dependency('pybind11') fungovala s pkg-config a cmake bez použitia skriptu pybind11-config.
  • Možnosti "--reconfigure" a "--wipe" (meson setup --reconfigure builddir a meson setup --wipe builddir ) sú povolené s prázdnym builddir.
  • meson.add_install_script() pridala podporu pre kľúčové slovo dry_run, ktoré vám umožňuje spúšťať vlastné inštalačné skripty pri volaní „meson install --dry-run“.

Zdroj: opennet.ru

Pridať komentár