Meson eraikitzeko sistemaren bertsioa 0.51

argitaratua eraiki sistemaren bertsioa Meson 0.51, X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME eta GTK+ bezalako proiektuak eraikitzeko erabiltzen dena. Meson kodea Python-en idatzita dago eta hornituta Apache 2.0 lizentziapean.

Meson garapenaren helburu nagusia muntaketa-prozesuaren abiadura handia ematea da erosotasunarekin eta erabiltzeko erraztasunarekin batera. Make utilityaren ordez, eraikuntza lehenetsiak tresna-kit erabiltzen du Ninja, 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 zehazten dira, oso irakurgarriak eta ulergarriak dira erabiltzailearentzat (egileek nahi bezala, garatzaileak denbora gutxien eman beharko luke arauak idazten).

GCC, Clang, Visual Studio eta beste konpiladore batzuk erabiliz Linux, 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 gehigarria onartzen da, azken eraikuntzatik egindako aldaketekin zuzenean lotutako osagaiak soilik berreraikitzen diren. Meson errepika daitezkeen eraikuntzak sortzeko erabil daiteke, eta, horietan, eraikuntza ingurune ezberdinetan exekutatzeak fitxategi exekutagarriak guztiz berdinak sortzen ditu.

Nagusia berrikuntzak Meson 0.51:

  • CMake build script-ak erabiltzen dituzten proiektuen eraikuntza gardenerako laguntza gehitu da. Meson-ek orain zuzenean eraiki ditzake azpiproiektu sinpleak (adibidez, liburutegi bakarrak) CMake modulua erabiliz, azpiproiektu estandarren antzera (CMake azpiproiektuak barne azpiproiektuen direktorioan jar daitezke);
  • Erabilitako konpilatzaile guztientzat, aurretiazko probak proba-fitxategi soilen muntaketa eta exekuzioaren bidez sartzen dira (sanity check), ez dira mugatu erabiltzaileak zehaztutako banderak zehar-konpilatzaileetarako probatzera (hemendik aurrera, egungo plataformaren jatorrizko konpilatzaileak ere egiaztatzen dira) .
  • Konpilazio gurutzatuan erabilitako komando-lerroko aukerak definitzeko gaitasuna gehitu da, aukeraren aurretik plataformaren aurrizki bat zehaztuz loturarekin. Aurretik, komando-lerroko aukerek jatorrizko eraikuntzak bakarrik hartzen zituzten eta ezin ziren zehaztu gurutzatutako konpilaziorako. Komando-lerroko aukerak orain natiboki eraikitzen ari zaren ala konpilazio gurutzatuan ari zaren kontuan hartu gabe, jatorrizko eta zeharkako eraikuntzak emaitza berdinak sortzen dituztela ziurtatuz;
  • Gehitu da "--cross-file" marka behin baino gehiagotan zehazteko gaitasuna komando-lerroan hainbat fitxategi gurutzatuak zerrendatzeko;
  • Windows plataformarako ICL konpiladorerako (Intel C/C++ Konpilatzailea) euskarria gehitu da (ICL.EXE eta ifort);
  • Hasierako tresna-kitaren euskarria gehitu da CPU Xtensarako (xt-xcc, xt-xc++, xt-nm);
  • β€œget_variable” metodoa β€œdependency” objektuari gehitu zaio, eta horri esker, aldagai baten balioa lor dezakezu uneko mendekotasun mota kontuan hartu gabe (adibidez, dep.get_variable(pkg-config : 'var- izena', cmake : 'COP_VAR_NAME));
  • Helburuko muntaia-aukeren argumentu berri bat gehitu da, "link_language", estekatzailea deitzean erabilitako hizkuntza esplizituki zehazteko. Adibidez, Fortran programa nagusi batek C/C++ kodea deitu lezake, eta horrek C/C++ automatikoki hautatuko luke Fortran estekatzailea erabili behar denean;
  • CPPFLAGS aurreprozesadorearen banderen kudeaketa aldatu da. Lehen Meson-ek CPPFLAGS eta hizkuntza-konpilazio-markak (CFLAGS, CXXFLAGS) bereizita gordetzen zituen, orain banaezin prozesatzen dira eta CPPFLAGS-en zerrendatutako banderak horiek onartzen dituzten hizkuntzetarako konpilazio-marken beste iturri gisa erabiltzen dira;
  • Custom_target eta custom_target[i]-ren irteera argumentu gisa erabil daiteke orain link_with eta link_whole eragiketetan;
  • Sorgailuek orain menpekotasun gehigarriak zehazteko gaitasuna dute "depends" aukera erabiliz (adibidez, generator(program_runner, irteera: [β€˜@[posta elektroniko bidez babestua]'], araberakoa: exe));
  • Aukera estatiko bat gehitu da find_library bilaketak estatikoki estekaturiko liburutegiak soilik sartzeko aukera izan dezan;
  • Python.find_installation-rako, Python-en bertsio zehatz baterako Python modulu jakin baten presentzia zehazteko gaitasuna gehitu da;
  • Unstable-kconfig modulu berria gehitu da kconfig fitxategiak analizatzeko;
  • Komando berri bat gehitu da "subprojects foreach", komando bat argumentuekin hartzen duena eta azpiproiektuen direktorio guztietan exekutatzen duena;

Iturria: opennet.ru

Gehitu iruzkin berria