Izdaja sistema za gradnjo Meson 1.0

Objavljena je bila izdaja sistema za gradnjo Meson 1.0.0, ki se uporablja za gradnjo projektov, kot so X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME in GTK. Koda Meson je napisana v Pythonu in je licencirana pod licenco Apache 2.0.

Ključni razvojni cilj podjetja Meson je zagotoviti visokohitrosten proces sestavljanja v kombinaciji s priročnostjo in enostavnostjo uporabe. Namesto make graditev privzeto uporablja komplet orodij Ninja, vendar je mogoče uporabiti tudi druga ozadja, kot sta xcode in VisualStudio. Sistem ima vgrajen upravljalnik odvisnosti za več platform, ki vam omogoča uporabo Mesona za izdelavo paketov za distribucije. Pravila sestavljanja so postavljena v poenostavljenem domensko specifičnem jeziku, so dobro berljiva in razumljiva uporabniku (po zamisli avtorjev naj bi razvijalec porabil najmanj časa za pisanje pravil).

Podprto je navzkrižno prevajanje in gradnja na Linux, Illumos/Solaris, FreeBSD, NetBSD, DragonFly BSD, Haiku, macOS in Windows z uporabo GCC, Clang, Visual Studio in drugih prevajalnikov. Projekte je mogoče graditi v različnih programskih jezikih, vključno s C, C++, Fortran, Javo in Rust. Podprt je inkrementalni način gradnje, v katerem se znova zgradijo samo komponente, ki so neposredno povezane s spremembami, izvedenimi od zadnje gradnje. Meson se lahko uporablja za generiranje ponovljivih gradenj, kjer zagon gradnje v različnih okoljih povzroči popolnoma enake izvedljive datoteke.

Glavne novosti Meson 1.0:

  • Modul za gradnjo projektov v jeziku Rust je bil razglašen za stabilnega. Ta modul se uporablja v projektu Mesa za izdelavo komponent, napisanih v Rustu.
  • Možnost predpone, ki je podprta v večini funkcij preverjanja prevajalnika, omogoča poleg nizov tudi zmožnost obravnavanja nizov. Zdaj lahko na primer določite: cc.check_header('GL/wglew.h', predpona: ['#include ', '#vključi '])
  • Dodan nov argument "--workdir", ki omogoča preglasitev delovnega imenika. Na primer, če želite uporabiti trenutni imenik namesto delovnega imenika, lahko zaženete: meson devenv -C builddir --workdir.
  • Predlagana sta bila nova operatorja »in« in »not in« za ugotavljanje pojavljanja podniza v nizu, podobno kot prej razpoložljivo preverjanje pojavljanja elementa v matriki ali slovarju. Na primer: fs = import('fs') if 'something' in fs.read('somefile') # True endif
  • Dodana je možnost »warning-level=everything«, ki vklopi izhod vseh razpoložljivih opozoril prevajalnika (v clang in MSVC uporablja -Weverything in /Wall, v GCC pa so opozorila vključena ločeno, približno ustrezajo -Weverything način v klanku).
  • Metoda rust.bindgen implementira zmožnost obravnavanja argumenta "odvisnosti" za posredovanje poti do odvisnosti, ki naj jih obdela prevajalnik.
  • Funkcija java.generate_native_headers je bila opuščena in preimenovana v java.native_headers, da bi ustrezala običajnemu slogu poimenovanja funkcij Meson.

Vir: opennet.ru

Dodaj komentar