Meson je programsko orodje za avtomatizacijo gradnje programske opreme. Je brezplačen in odprtokoden, napisan v Pythonu.
Izid nove različice sistema za gradnjo Meson 1.0.0 je bil objavljen v publikaciji , ki med drugim prinaša nove funkcije in stabilnost za prevajanje projektov v Rustu.
Za tiste, ki niso seznanjeni z Mesonom, velja omeniti, da se ta sistem za gradnjo uporablja za prevajanje znanih projektov, kot so X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME in GTK.
Mesonov ključni razvojni cilj je zagotoviti hiter proces prevajanja v kombinaciji s priročnostjo in enostavnostjo uporabe. Namesto tega sestava privzeto uporablja Ninja Toolkit, vendar je mogoče uporabiti tudi druga ozadja, kot sta xcode in VisualStudio.
Sistem ima vgrajen upravljalnik odvisnosti za več platform , ki omogoča uporabo Mesona za ustvarjanje paketov za distribucije. Pravila prevajanja so napisana v poenostavljenem, domensko specifičnem jeziku, zaradi česar so za uporabnika lahko berljiva in razumljiva (po viziji avtorjev bi morali razvijalci porabiti minimalno časa za pisanje pravil).
Podprto je navzkrižno prevajanje , pa tudi prevajanje v sistemih Linux, Illumos/Solaris, FreeBSD, NetBSD, DragonFly BSD, Haiku, macOS in Windows z uporabo prevajalnikov GCC, Clang, Visual Studio in drugih.
Projekte je mogoče graditi v več programskih jezikih , vključno s C, C++, Fortran, Java in Rustom. Podprt je način inkrementalnega prevajanja, pri katerem se ponovno zgradijo samo komponente, ki so neposredno povezane s spremembami, narejenimi od zadnjega prevajanja.
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
V tej novi izdaji Meson 1.0 je poudarjeno, da 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 jo podpira večina funkcij preverjanja prevajalnika, izvaja zmožnost obravnavanja nizov, ki niso nizi.
Druga sprememba, ki izstopa v tej izdaji, je uvedba novih operatorjev »in« in »not in« za določanje prisotnosti podniza v nizu, podobno kot prej na voljo preverjanje prisotnosti elementa v matriki ali slovarju.
Poleg tega lahko ugotovimo tudi, da je bila dodana možnost » warning-level=everything« za aktiviranje izpisa vseh razpoložljivih opozoril prevajalnika (v clang in MSVC uporablja -Weverything in /Wall, v GCC pa so vključena ločena opozorila, ki približno ustrezajo načinu -Weverything v clang).
Omeniti velja tudi, da je bil dodan nov argument »--workdir«, ki omogoča preglasitev delovnega imenika . Na primer, da se namesto delovnega imenika uporabi trenutni imenik.
Metoda rust.bindgen implementira zmožnost obdelave argumenta "dependencies" za posredovanje poti do odvisnosti, ki jih bo obdelal prevajalnik, funkcija java.generate_native_headers pa je bila opuščena in preimenovana v java.native_headers, da se ujema s splošnim slogom poimenovanja funkcij Meson.
Poleg tega je omenjeno tudi, da pri navzkrižnem prevajanju razvijalsko okolje zdaj nastavi vse spremenljivke okolja za gostiteljski računalnik. Zdaj nastavi tudi vrednost QEMU_LD_PREFIX in sys_root navzkrižne datoteke, če je lastnost definirana. To pomeni, da se lahko navzkrižno prevedene izvedljive datoteke pogosto pregledno izvajajo na prevajalnem računalniku, na primer pri navzkrižnem prevajanju za aarch64 Linux iz x86_64 Linux.
Nenazadnje, če vas zanima več informacij, lahko podrobnosti najdete na naslednji povezavi.
Kako namestiti Meson na Linux?
Tisti, ki jih zanima namestitev tega gradbenega sistema v svoj sistem, lahko to storijo tako, da sledijo navodilom, ki jih delimo spodaj.
Vedeti morajo, da je Meson na voljo na PyPi, zato ga je mogoče namestiti z ukazom:
pip3 install meson
Kot opomba morate vedeti, da se natančen ukaz za namestitev pip lahko razlikuje med sistemi, zato je priporočljivo, da uporabite različico pip Python 3.