Puštanje u promet montažnog sustava Meson 0.52

Objavljeno izdanje sustava za izgradnju 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 Pythonu i isporučuje se licenciran pod Apache 2.0.

Ključni cilj razvoja Mesona je osigurati veliku brzinu procesa montaže u kombinaciji s praktičnošću i jednostavnošću korištenja. Umjesto uslužnog programa make, zadana verzija koristi set alata Ninja, ali moguće je koristiti i druge pozadine, kao što su xcode i VisualStudio. Sustav ima ugrađeni rukovatelj ovisnosti za više platformi koji vam omogućuje korištenje Mesona za izradu paketa za distribucije. Pravila sklapanja navedena su u pojednostavljenom jeziku specifičnom za domenu, vrlo su čitljiva i razumljiva korisniku (prema namjeri autora, programer bi trebao potrošiti minimalno vremena na pisanje pravila).

Podržani unakrsno kompajlirati i graditi na Linuxu, Illumos/Solaris, FreeBSD, NetBSD, DragonFly BSD, Haiku, macOS i Windows koristeći GCC, Clang, Visual Studio i druge kompajlere. Moguće je izraditi projekte u različitim programskim jezicima, uključujući C, C++, Fortran, Java i Rust. Podržan je inkrementalni način izrade, u kojem se ponovno grade samo komponente koje su izravno povezane s promjenama učinjenima od posljednje izgradnje. Meson se može koristiti za generiranje ponovljivih nadogradnji, u kojima izvođenje nadogradnje u različitim okruženjima rezultira stvaranjem potpuno identičnih izvršnih datoteka.

Glavni inovacije Mezon 0.52:

  • Dodana je eksperimentalna podrška za Webassembly koristeći Emscripten kao kompajler;
  • Podrška za platforme Illumos i Solaris značajno je poboljšana i dovedena u radno stanje;
  • Osigurava da se internacionalizacijske skripte temeljene na gettext-u zanemaruju ako sustav nema instaliran set alata gettext (ranije se prikazivala pogreška pri korištenju modula i18n na sustavima bez gettext-a);
  • Poboljšana podrška za statičke biblioteke. Mnogi problemi pri korištenju deinstaliranih statičkih biblioteka su riješeni;
  • Dodana mogućnost korištenja rječnika za dodjelu varijabli okoline. Prilikom pozivanja okruženja(), prvi element sada može biti specificiran kao rječnik u kojem su varijable okruženja definirane u obliku ključ/vrijednost. Te će se varijable prenijeti u environment_object kao da su pojedinačno postavljene putem metode set(). Rječnici se također sada mogu proslijediti raznim funkcijama koje podržavaju argument "env";
  • Dodana je funkcija "runtarget alias_target(target_name, dep1, ...)" koja stvara 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ćena automatska postavka varijable okruženja PKG_CONFIG_SYSROOT_DIR tijekom unakrsne kompilacije ako postoji postavka sys_root u odjeljku “[properties]”;
  • Dodana opcija "--gdb-path" za određivanje staze do programa za ispravljanje pogrešaka GDB-a kada se navodi opcija "--gdb testname" za pokretanje GDB-a s navedenom test skriptom;
  • Dodano je automatsko otkrivanje cilja izgradnje clang-tidyja za pokretanje ovog lintera sa svim izvornim datotekama. Cilj se stvara ako je clang-tidy dostupan u sustavu i ako je datoteka “.clang-tidy” (ili “_clang-tidy”) definirana u korijenu projekta;
  • Dodana ovisnost ('blokovi') za korištenje u proširenju Clang Blokovi;
  • Pogledi povezivača i prevoditelja su odvojeni, što omogućuje korištenje različitih kombinacija prevoditelja i povezivača;
  • Dodana metoda all_dependencies() objektima SourceSet uz metodu all_sources();
  • U run_project_tests.py dodana je opcija “--only” za selektivno pokretanje testova (na primjer, “python run_project_tests.py —samo fortran python3”);
  • Funkcija find_program() sada ima mogućnost pretraživanja samo potrebnih verzija programa (verzija se utvrđuje pokretanjem programa s opcijom “-version”);
  • Za kontrolu izvoza simbola, opcija vs_module_defs dodana je funkciji shared_module(), slično shared_library();
  • Modul kconfig je proširen za podršku configure_file() za određivanje ulazne datoteke;
  • Dodana je mogućnost određivanja višestrukih ulaznih datoteka za rukovatelje “command:” u configure_file();
  • Naredba “dist” za izradu arhive premještena je u kategoriju naredbi prve razine (prethodno je naredba bila vezana uz ninju). Dodana je opcija "--formati" za definiranje vrsta arhiva koje treba izraditi (na primjer,
    "meson dist -formats=xztar,zip").

Izvor: opennet.ru

Dodajte komentar