Meson build sistem izdanje 0.52

objavljeno build sistemsko izdanje Mezon 0.52, koji se koristi za izgradnju projekata kao što su X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME i GTK+. Meson kod je napisan u Python-u i isporučuje se licenciran pod Apache 2.0.

Ključni cilj razvoja Meson-a je da obezbedi veliku brzinu procesa montaže u kombinaciji sa praktičnošću i lakoćom korišćenja. Umjesto uslužnog programa make, zadana verzija koristi alat Ninja, ali je moguće koristiti i druge pozadine, kao što su xcode i VisualStudio. Sistem ima ugrađeni višeplatformski rukovalac zavisnosti koji vam omogućava da koristite Meson za pravljenje paketa za distribucije. Pravila asemblera su specificirana na pojednostavljenom jeziku specifičnom za domenu, vrlo su čitljiva i razumljiva korisniku (kako su autori zamislili, programer bi trebao potrošiti minimalno vrijeme na pisanje pravila).

Podržani unakrsno kompajlirati i izgraditi na Linux, Illumos/Solaris, FreeBSD, NetBSD, DragonFly BSD, Haiku, macOS i Windows koristeći GCC, Clang, Visual Studio i druge kompajlere. Moguće je graditi projekte u različitim programskim jezicima, uključujući C, C++, Fortran, Java i Rust. Podržan je način inkrementalne gradnje, u kojem se obnavljaju samo komponente koje su direktno povezane s promjenama napravljenim od posljednje izgradnje. Meson se može koristiti za generiranje ponovljivih build-ova, u kojima pokretanje build-a u različitim okruženjima rezultira generiranjem potpuno identičnih izvršnih datoteka.

Glavni inovacije Meson 0.52:

  • Dodata eksperimentalna podrška za Webassembly koristeći Emscripten kao kompajler;
  • Podrška za platforme Illumos i Solaris je značajno poboljšana i dovedena u radno stanje;
  • Osigurava da se skripte internacionalizacije zasnovane na gettextu ignorišu ako sistem nema instaliran set alata gettext (ranije je bila prikazana greška kada se koristi i18n modul na sistemima bez gettext);
  • Poboljšana podrška za statičke biblioteke. Mnogi problemi pri korištenju deinstaliranih statičkih biblioteka su riješeni;
  • Dodata mogućnost korištenja rječnika za dodjelu varijabli okruženja. Prilikom pozivanja environment(), prvi element se sada može specificirati kao rječnik u kojem su varijable okruženja definirane u obliku ključ/vrijednost. Ove varijable će se prenijeti u environment_object kao da su pojedinačno postavljene metodom set(). Rečnici se sada takođe mogu prosleđivati ​​raznim funkcijama koje podržavaju argument "env";
  • Dodata funkcija "runtarget alias_target(target_name, dep1, ...)" koja kreira novi cilj izgradnje prve razine koji se može pozvati s odabranom pozadinom izgradnje (npr. "ninja target_name"). Ovaj cilj izgradnje ne pokreće nikakve naredbe, ali osigurava da su sve ovisnosti izgrađene;
  • Omogućeno automatsko podešavanje varijable okruženja PKG_CONFIG_SYSROOT_DIR tokom unakrsnog prevođenja ako postoji sys_root postavka u odjeljku “[properties]”;
  • Dodata opcija "--gdb-path" za određivanje putanje do GDB debuggera kada se specificira opcija "--gdb testname" za pokretanje GDB-a sa navedenom test skriptom;
  • Dodano je automatsko otkrivanje zveketnog cilja izgradnje za pokretanje ovog lintera sa svim izvornim datotekama. Cilj se kreira ako je clang-tidy dostupan u sistemu i datoteka “.clang-tidy” (ili “_clang-tidy”) je definirana u korijenu projekta;
  • Dodata zavisnost('blokovi') za upotrebu u ekstenziji Clang blokovi;
  • Pogledi povezivača i kompajlera su razdvojeni, omogućavajući upotrebu različitih kombinacija kompajlera i linkera;
  • Dodata metoda all_dependencies() u SourceSet objekte pored metode all_sources();
  • U run_project_tests.py, opcija “--only” je dodana za selektivno pokretanje testova (na primjer, “python run_project_tests.py —only fortran python3”);
  • Funkcija find_program() sada ima mogućnost pretraživanja samo potrebnih verzija programa (verzija se određuje pokretanjem programa sa opcijom “-version”);
  • Za kontrolu izvoza simbola, opcija vs_module_defs je dodana funkciji shared_module(), slično kao shared_library();
  • Modul kconfig je proširen da podrži configure_file() za specificiranje ulazne datoteke;
  • Dodata mogućnost specificiranja više ulaznih datoteka za rukovaoce “command:” u configure_file();
  • Komanda “dist” za kreiranje arhive premeštena je u kategoriju komandi prvog nivoa (ranije je komanda bila vezana za nindže). Dodata opcija "--formati" za definiranje tipova arhiva koje će se kreirati (na primjer,
    "meson dist -formats=xztar,zip").

izvor: opennet.ru

Dodajte komentar