Izdavanje Meson 0.58 montažnog sistema. Projekat za kreiranje implementacije Meson u C jeziku

Objavljeno je izdanje Meson 0.58 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 0.58:

  • Meson ima ugrađene operacije oblikovanja stringova. Umjesto pozivanja metode formatiranja, sada možete direktno zamijeniti vrijednosti, na primjer, umjesto "'String @0@ za formatiranje @1@'.format(n, m)" možete odmah odrediti "f' Niz @n@ koji treba formatirati @ m@'".
  • Metoda “replace” je dodana objektima niza za izvođenje operacije zamjene jednog podniza drugim, na primjer, “s = s.replace(‘aaa’, ‘bbb’).”
  • Dodata funkcija "range(start, stop[, step])" za vraćanje objekta koji se može koristiti u foreach petlji, kao što je "foreach i : range(15)".
  • Implementirana je metoda meson.add_devenv() koja vam omogućava da dodate okoliš() objekt za postavljanje varijabli okruženja kada koristite naredbu "meson devenv", na primjer, da postavite varijablu okruženja sa putanjom do direktorija dodataka.
  • Za razvojna okruženja predložena je nova naredba: “meson devenv -C builddir [], koja omogućava pokretanje naredbe u okruženju konfiguriranom za pokretanje projekata iz direktorija za izgradnju (bez instalacije).
  • Prema zadanim postavkama, opcija "-pipe" se prestaje prosljeđivati ​​kada se pokreću svi podržani kompajleri.
  • Pozivanje meson.add_dist_script() iz potprojekata je dozvoljeno.
  • Pruža mogućnost pokretanja metoda append() i prepend() više puta na istom objektu okoline().
  • Funkcija error() dozvoljava više od jednog argumenata, odvojenih razmakom (slično kao warning() i message()).
  • Dodata opcija "--skip-subprojects" za selektivno preskakanje instalacije podprojekata.

Odvojeno, možemo primijetiti projekt Boson, čiji je cilj stvaranje prenosive i jednostavne implementacije Meson asemblerskog skriptnog jezika, napisanog u C umjesto Python-a. Projekat je još u početnoj fazi razvoja i još nije spreman za kompletnu montažu radnih projekata. Kod je licenciran pod GPLv3 (originalni Python Meson je licenciran pod licencom Apache 2.0).

izvor: opennet.ru

Dodajte komentar