Izdaja sistema za gradnjo Meson 0.52

Objavljeno izdelava izdaje sistema Mezon 0.52, ki se uporablja za izdelavo projektov, kot so X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME in GTK+. Koda Meson je napisana v Pythonu in priloženo licenciran pod Apache 2.0.

Ključni cilj razvoja Meson je zagotoviti visoko hitrost procesa montaže v kombinaciji s priročnostjo in enostavnostjo uporabe. Namesto pripomočka make privzeta zgradba uporablja komplet orodij ninja, vendar je mogoče uporabiti tudi druga ozadja, kot sta xcode in VisualStudio. Sistem ima vgrajen upravljalnik odvisnosti za več platform, ki vam omogoča uporabo Mesona za izdelavo paketov za distribucije. Pravila sestavljanja so določena v poenostavljenem domensko specifičnem jeziku, so zelo berljiva in razumljiva uporabniku (kot so predvideli avtorji, mora razvijalec porabiti najmanj časa za pisanje pravil).

Podprto navzkrižno prevajati in graditi na Linuxu, Illumos/Solarisu, FreeBSD, NetBSD, DragonFly BSD, Haiku, macOS in Windows z uporabo GCC, Clang, Visual Studio in drugih prevajalnikov. Projekte je mogoče graditi v različnih programskih jezikih, vključno s C, C++, Fortran, Javo in Rust. Podprt je inkrementalni način gradnje, v katerem se znova zgradijo samo komponente, ki so neposredno povezane s spremembami, izvedenimi od zadnje gradnje. Meson se lahko uporablja za generiranje ponovljivih gradenj, pri katerih izvajanje gradnje v različnih okoljih povzroči generiranje popolnoma enakih izvedljivih datotek.

Glavni inovacije Mezon 0.52:

  • Dodana eksperimentalna podpora za Webassembly z uporabo Emscriptena kot prevajalnika;
  • Podpora za platformi Illumos in Solaris je bila bistveno izboljšana in spravljena v delovno stanje;
  • Zagotavlja, da so internacionalizacijski skripti, ki temeljijo na gettext, prezrti, če sistem nima nameščenega kompleta orodij gettext (prej je bila prikazana napaka pri uporabi modula i18n v sistemih brez gettext);
  • Izboljšana podpora za statične knjižnice. Številne težave pri uporabi nenameščenih statičnih knjižnic so bile odpravljene;
  • Dodana možnost uporabe slovarjev za dodeljevanje spremenljivk okolja. Pri klicu environment() lahko zdaj prvi element določite kot slovar, v katerem so spremenljivke okolja definirane v obliki ključ/vrednost. Te spremenljivke bodo prenesene v environment_object, kot da bi bile posamično nastavljene z metodo set(). Slovarje je zdaj mogoče posredovati tudi različnim funkcijam, ki podpirajo argument "env";
  • Dodana funkcija »runtarget alias_target(target_name, dep1, ...)«, ki ustvari nov cilj gradnje prve stopnje, ki ga je mogoče poklicati z izbranim zaledjem gradnje (npr. »ninja target_name«). Ta gradbeni cilj ne izvaja nobenih ukazov, ampak zagotavlja, da so zgrajene vse odvisnosti;
  • Omogočena samodejna nastavitev spremenljivke okolja PKG_CONFIG_SYSROOT_DIR med navzkrižnim prevajanjem, če je v razdelku »[lastnosti]« nastavitev sys_root;
  • Dodana možnost "--gdb-path" za določitev poti do razhroščevalnika GDB, ko podate možnost "--gdb testname" za zagon GDB z določenim testnim skriptom;
  • Dodano samodejno zaznavanje cilja gradnje clang-tidy za zagon tega linterja z vsemi izvornimi datotekami. Cilj je ustvarjen, če je v sistemu na voljo clang-tidy in je datoteka ».clang-tidy« (ali »_clang-tidy«) definirana v korenu projekta;
  • Dodana odvisnost ('bloki') za uporabo v razširitvi Clang Bloki;
  • Pogleda povezovalnika in prevajalnika sta ločena, kar omogoča uporabo različnih kombinacij prevajalnikov in povezovalnikov;
  • Dodana metoda all_dependencies() objektom SourceSet poleg metode all_sources();
  • V run_project_tests.py je bila dodana možnost »--only« za selektivno izvajanje testov (na primer »python run_project_tests.py —only fortran python3«);
  • Funkcija find_program() ima zdaj možnost iskanja samo zahtevanih verzij programa (verzija se določi tako, da se program zažene z možnostjo “-version”);
  • Za nadzor izvoza simbolov je bila funkciji shared_module() dodana možnost vs_module_defs, podobna shared_library();
  • Modul kconfig je bil razširjen tako, da podpira configure_file() za podajanje vhodne datoteke;
  • V configure_file() je bila dodana možnost podajanja več vhodnih datotek za obdelovalce »ukaz:«.
  • Ukaz “dist” za ustvarjanje arhiva je prestavljen v kategorijo prvonivojskih ukazov (prej je bil ukaz vezan na ninjo). Dodana možnost »--formats« za določitev vrst arhivov, ki jih je treba ustvariti (npr.
    "meson dist -formats=xztar,zip").

Vir: opennet.ru

Dodaj komentar