Meson eraikitzeko sistemaren bertsioa 1.0

Meson 1.0.0 eraikitze sistemaren oharra argitaratu da, X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME eta GTK bezalako proiektuak eraikitzeko erabiltzen dena. Meson kodea Python-en idatzita dago eta Apache 2.0 lizentziapean dago.

Meson-en garapen-helburu nagusia abiadura handiko muntaketa-prozesua eskaintzea da, erosotasunarekin eta erabiltzeko erraztasunarekin konbinatuta. Makearen ordez, eraikuntzak Ninja tresna-kit erabiltzen du lehenespenez, baina beste backend batzuk ere erabil daitezke, hala nola xcode eta VisualStudio. Sistemak plataforma anitzeko menpekotasun-kudeatzailea du eta Meson erabil dezakezu banaketarako paketeak eraikitzeko. Muntaketa-arauak domeinu zehatzeko hizkuntza sinplifikatu batean ezartzen dira, erabiltzailearentzat ondo irakurgarriak eta ulergarriak dira (egileen ideiaren arabera, garatzaileak denbora gutxien eman beharko luke arauak idazten).

GCC, Clang, Visual Studio eta beste konpiladore batzuk erabiliz Linux, Illumos/Solaris, FreeBSD, NetBSD, DragonFly BSD, Haiku, macOS eta Windows-en konpilazio gurutzatua eta eraikitzea onartzen da. Hainbat programazio lengoaiatan proiektuak eraiki daitezke, besteak beste, C, C++, Fortran, Java eta Rust. Eraikitze modu inkrementala onartzen da, azken eraikuntzatik egindako aldaketekin zuzenean lotuta dauden osagaiak soilik berreraikitzen diren. Meson errepika daitezkeen eraikuntzak sortzeko erabil daiteke, non eraikuntza ingurune desberdinetan exekutatzen den exekutagarri guztiz berdinak sortzen dituen.

Meson 1.0-en berrikuntza nagusiak:

  • Rust hizkuntzan proiektuak eraikitzeko modulua egonkor deklaratu da. Modulu hau Mesa proiektuan erabiltzen da Rust-en idatzitako osagaiak eraikitzeko.
  • Konpiladoreak egiaztatzeko funtzio gehienek onartzen dute, aurrizkiaren aukerak kateak ez diren arrayak kudeatzeko gaitasuna ezartzen du. Adibidez, orain zehaztu dezakezu: cc.check_header('GL/wglew.h', aurrizkia: ['#include ', '#barne '])
  • "--workdir" argumentu berri bat gehitu da lan-direktorioa gainidazteko. Adibidez, laneko direktorioaren ordez uneko direktorioa erabiltzeko, exekutatu dezakezu: meson devenv -C builddir --workdir .
  • "In" eta "not in" operadore berriak proposatzen dira kate batean azpikate baten agerraldia zehazteko, aldez aurretik matrize edo hiztegi batean elementuren bat agertzearen egiaztapenaren antzera. Adibidez: fs = import('fs') if 'something' in fs.read('somefile') # True endif
  • "warning-level=everything" aukera gehitu da konpiladore erabilgarri dauden abisu guztien irteera aktibatzeko (clang-en eta MSVC-en -Weverything eta /Wall-en erabiltzen dira, eta GCCn abisu bereiziak sartzen dira, gutxi gorabehera -Weverything moduari dagozkion clang-en).
  • Rust.bindgen metodoak "dependentziak" argumentua prozesatzeko gaitasuna inplementatzen du, konpilatzaileak prozesatu behar dituen mendekotasunei bideak pasatzeko.
  • java.generate_native_headers funtzioa zaharkituta geratu da eta java.native_headers izena jarri zaio Meson-en funtzio orokorraren izendapen-estiloarekin bat etortzeko.

Iturria: opennet.ru

Gehitu iruzkin berria