Meson eraikitzeko sistemaren bertsioa 1.3

Meson 1.3.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.3-en berrikuntza nagusiak:

  • "werror: true" aukera gehitu da compiler.compiles(), compiler.links() eta compiler.run() konpiladoreen egiaztapen-metodoetan, eta horrek konpiladorearen abisuak errore gisa hartzen ditu (kodea abisurik gabe eraiki dela egiaztatzeko erabil daiteke. ).
  • Has_define metodoa gehitu da ikurren definizioa aurreprozesadorearen bidez egiaztatzeko.
  • Makro_izena parametroa configure_file() funtziora gehitu da, konexio bikoitzetarako makro babesa gehituz β€œ#include” (β€œbarn guardiak”), makroen estiloan diseinatua C hizkuntzan (konfigurazio fitxategien sorrera sinplifikatuz dinamikoarekin. makro izenak).
  • Irteera formatu berri bat gehitu da configure_file() - JSON ("output_format: json").
  • c_std eta cpp_std parametroetan balio zerrendak erabiltzeko gaitasuna gehitu da (adibidez, "default_options: 'c_std=gnu11,c11β€²').
  • Fitxategiak prozesatzeko CustomTarget erabiltzen duten moduluetan, ninja utilitatearen mezuak pertsonalizatzeko gaitasuna gehitu da.
  • build_target "jar" zaharkituta geratu da eta horren ordez "jar()" deia gomendatzen da.
  • 'env' parametroa generator.process() metodora gehitu da sorgailuak sarrera prozesatzeko duen ingurune-aldagaia ezartzeko.
  • Exekutagarriekin erlazionatutako eraikitzeko xede-izenak zehazten direnean, "executable('foo', 'main.c', name_suffix: 'bar')" bezalako atzizkiak exekutagarri gehigarriak sortzeko baimena dute direktorio berean.
  • "vs_module_defs" parametroa gehitu da exektuable() funtzioari shared_module(ri) pasatutako funtzioen zerrenda definitzen duen def fitxategi bat erabiltzeko.
  • Find_program() funtzioari 'default_options' parametroa gehitu zaio, azpiproiektuaren aukera lehenetsiak ezartzeko.
  • Gehitu da fs.relative_to() metodoa, lehen argumentuaren bide erlatiboa itzultzen duena, bigarrenarekiko, lehen bidea existitzen bada. Adibidez, "fs.relative_to('/prefix/lib', '/prefix/bin') == '../lib')".
  • Follow_symlinks parametroa install_data(), install_headers() eta install_subdir() funtzioetan gehitu da; ezarrita dagoenean, esteka sinbolikoak jarraitzen dira.
  • Int.to_string() metodoari "fill" parametro bat gehitu zaio katea hasierako zeroekin gehitzeko. Adibidez, message(n.to_string(fill: 3)) n=4 deitzeak "004" katea sortuko du.
  • Helburu berri bat gehitu da, clang-tidy-fix, clang-tidy utilitya "-fix" banderarekin exekutatzea zehazten duena.
  • Konpilazio komandoari ([PATH_TO_TARGET/]TARGET_NAME.TARGET_SUFFIX[:TARGET_TYPE]) atzizkia (TARGET_SUFFIX) zehazteko gaitasuna gehitu zaio.
  • MESON_PACKAGE_CACHE_DIR ingurune-aldagaia gehitu da paketeen cacherako bidea gainidazteko (azpiproiektuak/packagecache), adibidez, hainbat proiektutan partekatutako cache bat erabiltzeko aukera emanez.
  • "meson setup --clearcache" komandoa gehitu da cache iraunkorra garbitzeko.
  • β€œBeharrezkoa” gako-hitzerako laguntza gehitu da β€œhas_*” konpiladore egiaztatzeko metodo guztietan, adibidez, β€œassert(cc.has_function('some_function'))”-ren ordez, orain β€œcc.has_function('some_function') zehaztu dezakezu , eskatzen: egia)”.
  • gako-hitz berri bat, rust_abi, shared_library(), static_library(), library() eta shared_module() funtzioetara gehitu da, zaharkitutako rust_crate_type-ren ordez erabili behar dena.

Iturria: opennet.ru

Gehitu iruzkin berria