Puštanje u promet montažnog sustava Meson 1.1

Objavljeno je izdanje Meson 1.1.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.1:

  • Novi argument "objects:" dodan je u declare_dependency() za prilaganje objekata izravno izvršnim datotekama u obliku internih ovisnosti koje ne zahtijevaju upotrebu link_who.
  • Naredba "meson devenv -dump" sada ima opciju određivanja datoteke u koju će se pisati varijable okoline umjesto ispisivanja na standardni izlaz.
  • Dodane su metode FeatureOption.enable_if i FeatureOption.disable_if kako bi se olakšalo stvaranje uvjeta u pripremi za prosljeđivanje parametara funkciji dependency(). opt = get_option('feature').disable_if(not foo, error_message : 'Ne mogu omogućiti značajku kada foo također nije omogućen') dep = dependency('foo', obavezno : opt)
  • Dopušteno je prosljeđivanje generiranih objekata kao argumenata "objektima:".
  • Funkcija projekta sada podržava instaliranje datoteka s informacijama o licencama projekta.
  • Pokretanje "sudo meson install" osigurava poništavanje privilegija tijekom ponovne izgradnje za ciljne platforme.
  • Naredba "meson install" pruža mogućnost određivanja zasebnog rukovatelja za dobivanje root prava (na primjer, možete odabrati polkit, sudo, opendoas ili $MESON_ROOT_CMD). Pokretanje "meson install" u neinteraktivnom načinu više ne pokušava eskalirati privilegije.
  • Dodana podrška za opcije čitanja iz datoteke meson.options umjesto meson_options.txt.
  • Omogućeno je preusmjeravanje informacija o napretku introspekcije na stderr.
  • Dodan je novi "none" backend (--backend=none) za stvaranje projekata koji imaju samo pravila instalacije, a ne pravila izgradnje.
  • Dodana je nova ovisnost pybind11, dopuštajući ovisnosti ('pybind11') da radi s pkg-config i cmake bez upotrebe skripte pybind11-config.
  • Dopuštene su opcije "--reconfigure" i "--wipe" (meson setup --reconfigure builddir i meson setup --wipe builddir) s praznim builddirom.
  • Dodana je podrška za ključnu riječ dry_run u meson.add_install_script() kako bi se omogućilo pokretanje vaših vlastitih instalacijskih skripti prilikom pozivanja "meson install --dry-run".

Izvor: opennet.ru

Dodajte komentar