Vydanie systému zostavy Meson 0.52

publikovaný zostaviť vydanie systému Mezón 0.52, ktorý sa používa na vytváranie projektov ako X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME a GTK+. Kód Meson je napísaný v jazyku Python a dodávané licencovaný pod Apache 2.0.

Kľúčovým cieľom vývoja Meson je poskytnúť vysokú rýchlosť montážneho procesu v kombinácii s pohodlím a jednoduchosťou použitia. Namiesto pomôcky make používa predvolená zostava súpravu nástrojov ninja, ale je možné 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ú špecifikované v zjednodušenom jazyku špecifickom pre doménu, sú vysoko čitateľné a zrozumiteľné pre používateľa (ako zamýšľali autori, vývojár by mal písaním pravidiel venovať minimum času).

Podporované krížovo kompilujte a stavajte 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 priamo súvisiace so zmenami vykonanými od poslednej zostavy. Meson je možné použiť na generovanie opakovateľných zostavení, v ktorých spustenie zostavy v rôznych prostrediach vedie ku generovaniu úplne identických spustiteľných súborov.

Hlavné inovácie Mezón 0.52:

  • Pridaná experimentálna podpora pre Webassembly s použitím Emscriptenu ako kompilátora;
  • Podpora platforiem Illumos a Solaris bola výrazne vylepšená a uvedená do funkčného stavu;
  • Zabezpečuje, že internacionalizačné skripty založené na gettexte budú ignorované, ak systém nemá nainštalovanú sadu nástrojov gettext (predtým sa pri použití modulu i18n na systémoch bez gettextu zobrazovala chyba);
  • Vylepšená podpora pre statické knižnice. Mnoho problémov pri používaní odinštalovaných statických knižníc bolo vyriešených;
  • Pridaná možnosť používať slovníky na priraďovanie premenných prostredia. Pri volaní environment() môže byť teraz prvý prvok špecifikovaný ako slovník, v ktorom sú premenné prostredia definované vo forme kľúč/hodnota. Tieto premenné budú prenesené do environment_object, ako keby boli individuálne nastavené pomocou metódy set(). Slovníky môžu byť teraz odovzdané rôznym funkciám, ktoré podporujú argument "env";
  • Pridaná funkcia „runtarget alias_target(názov_cieľa, dep1, ...)“, ktorá vytvorí nový cieľ zostavy prvej úrovne, ktorý možno volať pomocou vybratého backendu zostavy (napr. „názov_cieľa ninja“). Tento cieľ zostavenia nespúšťa žiadne príkazy, ale zabezpečuje, že sú vytvorené všetky závislosti;
  • Povolené automatické nastavenie premennej prostredia PKG_CONFIG_SYSROOT_DIR počas krížovej kompilácie, ak je v sekcii „[properties]“ nastavenie sys_root;
  • Pridaná možnosť „--gdb-path“ na určenie cesty k ladiacemu programu GDB pri zadávaní možnosti „--gdb testname“ na spustenie GDB so zadaným testovacím skriptom;
  • Bola pridaná automatická detekcia cieľa zostavy, aby sa spustil tento linter so všetkými zdrojovými súbormi. Cieľ je vytvorený, ak je v systéme dostupný clang-tidy a súbor „.clang-tidy“ (alebo „_clang-tidy“) je definovaný v koreňovom adresári projektu;
  • Pridaná závislosť ('bloky') na použitie v rozšírení Clang Bloky;
  • Pohľady linkera a kompilátora sú oddelené, čo umožňuje použitie rôznych kombinácií kompilátorov a linkerov;
  • Pridaná metóda all_dependencies() do objektov SourceSet okrem metódy all_sources();
  • V run_project_tests.py bola pridaná možnosť „--only“ na selektívne spúšťanie testov (napríklad „python run_project_tests.py —len fortran python3“);
  • Funkcia find_program() má teraz možnosť vyhľadávať iba požadované verzie programu (verziu určíte spustením programu s voľbou „-version“);
  • Na riadenie exportu symbolov bola do funkcie shared_module() pridaná možnosť vs_module_defs, podobne ako shared_library();
  • Modul kconfig bol rozšírený o podporu configure_file() na špecifikovanie vstupného súboru;
  • Pridaná možnosť zadať viacero vstupných súborov pre „command:“ obslužné programy pre configure_file();
  • Príkaz „dist“ na vytvorenie archívu bol presunutý do kategórie príkazov prvej úrovne (predtým bol príkaz viazaný na ninju). Pridaná možnosť „--formats“ na definovanie typov archívov, ktoré sa majú vytvoriť (napr.
    "meson dist -formats=xztar,zip").

Zdroj: opennet.ru

Pridať komentár