Puštanje u promet montažnog sustava Meson 1.0

Objavljeno je izdanje Meson 1.0.0 build sustava 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 licenciran je pod licencom Apache 2.0.

Ključni razvojni cilj tvrtke Meson je osigurati brzi proces sklapanja u kombinaciji s praktičnošću i jednostavnošću korištenja. Umjesto make, build prema zadanim postavkama koristi Ninja toolkit, ali se mogu koristiti i drugi backendovi 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 asemblera postavljena su na pojednostavljenom jeziku specifičnom za domenu, dobro su čitljiva i razumljiva korisniku (prema ideji autora, programer bi trebao potrošiti minimalno vremena na pisanje pravila).

Podržano je unakrsno prevođenje i izgradnja na Linuxu, Illumos/Solarisu, 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 gradnje, u kojem se ponovno grade samo komponente koje su izravno povezane s promjenama učinjenima od posljednjeg builda. Meson se može koristiti za generiranje ponovljivih nadogradnji, pri čemu izvođenje nadogradnje u različitim okruženjima rezultira potpuno identičnim izvršnim datotekama.

Glavne inovacije Meson 1.0:

  • Modul za izgradnju projekata na jeziku Rust proglašen je stabilnim. Ovaj se modul koristi u projektu Mesa za izgradnju komponenti napisanih u Rustu.
  • Podržana od strane većine funkcija provjere kompilatora, opcija prefiksa implementira mogućnost rukovanja nizovima koji nisu nizovi. Na primjer, sada možete navesti: cc.check_header('GL/wglew.h', prefiks: ['#include ', '#uključi '])
  • Dodan je novi argument "--workdir" koji vam omogućuje nadjačavanje radnog direktorija. Na primjer, za korištenje trenutnog direktorija umjesto radnog direktorija, možete pokrenuti: meson devenv -C builddir --workdir .
  • Predlažu se novi operatori "in" i "not in" za utvrđivanje pojavljivanja podniza u nizu, slično prethodno dostupnoj provjeri pojavljivanja elementa u nizu ili rječniku. Na primjer: fs = import('fs') if 'nešto' u fs.read('somefile') # True endif
  • Dodana je opcija "warning-level=everything" za uključivanje izlaza svih dostupnih upozorenja prevoditelja (u clang i MSVC koristi -Weverything i /Wall, au GCC-u su uključena zasebna upozorenja, koja otprilike odgovaraju načinu rada -Weverything u clangu).
  • Metoda rust.bindgen implementira mogućnost obrade argumenta "dependencies" za prosljeđivanje staza do ovisnosti koje treba obraditi kompilator.
  • Funkcija java.generate_native_headers je zastarjela i preimenovana u java.native_headers kako bi odgovarala Mesonovom općem stilu imenovanja funkcija.

Izvor: opennet.ru

Dodajte komentar