Meson build sistem izdanje 1.0

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

Ključni razvojni cilj Meson-a je da obezbedi visoku brzinu procesa montaže u kombinaciji sa praktičnošću i lakoćom upotrebe. Umjesto make, build koristi Ninja komplet alata prema zadanim postavkama, ali se mogu koristiti i drugi backendovi 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 postavljena na pojednostavljenom jeziku specifičnom za domenu, dobro su čitljiva i razumljiva korisniku (prema ideji autora, programer bi trebao potrošiti minimum vremena na pisanje pravila).

Podržano je unakrsno kompajliranje 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 graditi 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 ponovo izgrađuju samo komponente koje su direktno povezane s promjenama napravljenim od posljednje izgradnje. Meson se može koristiti za generiranje ponovljivih build-ova, pri čemu pokretanje build-a u različitim okruženjima rezultira potpuno identičnim izvršnim programima.

Glavne inovacije Meson 1.0:

  • Modul za izgradnju projekata na Rust jeziku je proglašen stabilnim. Ovaj modul se koristi u Mesa projektu za izgradnju komponenti napisanih u Rustu.
  • Podržana od većine funkcija provjere kompajlera, opcija prefiksa implementira mogućnost rukovanja nizovima koji nisu nizovi. Na primjer, sada možete odrediti: cc.check_header('GL/wglew.h', prefiks : ['#include ', '#uključiti '])
  • Dodan je novi argument "--workdir" koji vam omogućava da nadjačate radni direktorij. Na primjer, da biste koristili trenutni direktorij umjesto radnog direktorija, možete pokrenuti: meson devenv -C builddir --workdir .
  • Predlažu se novi operatori "in" i "not in" za određ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
  • Dodata opcija "warning-level=everything" za uključivanje izlaza svih dostupnih upozorenja kompajlera (u clang i MSVC koristi -Weverything i /Wall, au GCC-u su uključena posebna upozorenja, što otprilike odgovara -Weverything modu u clang).
  • Metoda rust.bindgen implementira mogućnost obrade argumenta "zavisnosti" za prosljeđivanje putanja do zavisnosti koje bi trebao obraditi kompajler.
  • 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