Rhyddhau system adeiladu Meson 1.3

Mae rhyddhau system adeiladu Meson 1.3.0 wedi'i gyhoeddi, a ddefnyddir i adeiladu prosiectau fel X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME a GTK. Mae'r cod Meson wedi'i ysgrifennu yn Python ac mae wedi'i drwyddedu o dan drwydded Apache 2.0.

Nod datblygu allweddol Meson yw darparu proses gydosod cyflymder uchel ynghyd â chyfleustra a rhwyddineb defnydd. Yn lle gwneud, mae'r adeilad yn defnyddio pecyn cymorth Ninja yn ddiofyn, ond gellir defnyddio backends eraill fel xcode a VisualStudio hefyd. Mae gan y system driniwr dibyniaeth aml-lwyfan adeiledig sy'n eich galluogi i ddefnyddio Meson i adeiladu pecynnau ar gyfer dosbarthiadau. Mae rheolau'r Cynulliad wedi'u gosod mewn iaith parth-benodol wedi'i symleiddio, maent yn ddarllenadwy ac yn ddealladwy i'r defnyddiwr (yn ôl syniad yr awduron, dylai'r datblygwr dreulio lleiafswm o amser yn ysgrifennu rheolau).

Cefnogir traws-grynhoi ac adeiladu ar Linux, Illumos / Solaris, FreeBSD, NetBSD, DragonFly BSD, Haiku, macOS a Windows gan ddefnyddio GCC, Clang, Visual Studio a chasglwyr eraill. Mae'n bosibl adeiladu prosiectau mewn ieithoedd rhaglennu amrywiol, gan gynnwys C, C++, Fortran, Java a Rust. Cefnogir modd adeiladu cynyddrannol, lle dim ond cydrannau sy'n uniongyrchol gysylltiedig â newidiadau a wnaed ers yr adeiladu diwethaf sy'n cael eu hailadeiladu. Gellir defnyddio Meson i gynhyrchu adeiladau y gellir eu hailadrodd, lle mae rhedeg yr adeilad mewn gwahanol amgylcheddau yn arwain at gynhyrchu gweithredadwy hollol union yr un fath.

Prif arloesiadau Meson 1.3:

  • Ychwanegwyd yr opsiwn “werror: true” at ddulliau gwirio'r casglwr compiler.compiles(), compiler.links() a compiler.run(), sy'n trin rhybuddion casglwr fel gwallau (gellir eu defnyddio i wirio bod y cod wedi'i adeiladu heb rybuddion ).
  • Ychwanegwyd dull has_define i wirio diffiniad symbol yn ôl rhagbrosesydd.
  • Mae'r paramedr macro_name wedi'i ychwanegu at y swyddogaeth configure_file (), gan ychwanegu amddiffyniad macro ar gyfer cysylltiadau dwbl trwy “#include” (“cynnwys gwarchodwyr”), wedi'i ddylunio yn arddull macros yn yr iaith C (symleiddio creu ffeiliau ffurfweddu gyda deinamig enwau macro).
  • Mae fformat allbwn newydd wedi'i ychwanegu at configure_file() - JSON ("output_format: json").
  • Ychwanegwyd y gallu i ddefnyddio rhestrau o werthoedd at y paramedrau c_std a cpp_std (er enghraifft, “default_options: ‘c_std=gnu11,c11’”).
  • Mewn modiwlau sy'n defnyddio CustomTarget i brosesu ffeiliau, mae'r gallu i addasu allbwn negeseuon gan y cyfleustodau ninja wedi'i ychwanegu.
  • Mae'r "jar" build_target wedi'i anghymeradwyo ac argymhellir y galwad "jar()" yn lle hynny.
  • Mae'r paramedr 'env' wedi'i ychwanegu at y dull generadur.process() i osod y newidyn amgylchedd y bydd y generadur yn prosesu mewnbwn drwyddo.
  • Wrth nodi enwau targed adeiladu sy'n gysylltiedig â gweithredoedd gweithredadwy, caniateir i ôl-ddodiaid fel "gweithredadwy ('foo', 'main.c', name_suffix: 'bar')" gynhyrchu gweithredyddion ychwanegol yn yr un cyfeiriadur.
  • Ychwanegwyd y paramedr “vs_module_defs” at y swyddogaeth gweithredadwy () i ddefnyddio ffeil def sy'n diffinio'r rhestr o swyddogaethau a drosglwyddwyd i shared_module ().
  • Mae'r paramedr 'default_options' wedi'i ychwanegu at y ffwythiant find_program() i osod yr opsiynau rhagosodedig ar gyfer yr is-brosiect wrth gefn.
  • Ychwanegwyd dull fs.relative_to(), sy'n dychwelyd y llwybr cymharol ar gyfer y ddadl gyntaf, o'i gymharu â'r ail, os yw'r llwybr cyntaf yn bodoli. Er enghraifft, “fs.relative_to(‘/prefix/lib’, ‘/prefix/bin’) == ‘../lib’).”
  • Mae'r paramedr following_symlinks wedi'i ychwanegu at y swyddogaethau install_data ( ), install_headers ( ) a install_subdir ( ); pan fydd wedi'i osod, dilynir dolenni symbolaidd.
  • Mae paramedr “llenwi” wedi'i ychwanegu at y dull int.to_string() i lenwi'r llinyn yn gynyddrannol â sero arweiniol. Er enghraifft, bydd galw neges (n.to_string(fill: 3)) ar gyfer n=4 yn cynhyrchu'r llinyn "004".
  • Ychwanegwyd targed newydd, clang-tidy-fix, sy'n nodi rhedeg y cyfleustodau clang-tidy gyda'r faner "-fix".
  • Mae'r gallu i nodi ôl-ddodiad (TARGET_SUFFIX) y targed cydosod ([PATH_TO_TARGET/]TARGET_NAME.TARGET_SUFFIX[:TARGET_TYPE]) wedi'i ychwanegu at y gorchymyn crynhoi.
  • Ychwanegwyd newidyn amgylchedd MESON_PACKAGE_CACHE_DIR i ddiystyru'r llwybr i'r storfa pecyn (subprojects/packagecache), er enghraifft, sy'n eich galluogi i ddefnyddio storfa a rennir mewn sawl prosiect.
  • Ychwanegwyd gorchymyn "meson setup --clearcache" i glirio storfa barhaus.
  • Mae cefnogaeth i'r allweddair “gofynnol” wedi'i ychwanegu at bob dull gwirio casglwr “has_*”, er enghraifft, yn lle “sert(cc.has_function('some_function'))” gallwch nawr nodi “cc.has_function('some_function' , gofynnol: gwir)”.
  • Mae allweddair newydd, rust_abi, wedi'i ychwanegu at y swyddogaethau shared_library(), static_library(), library(), a shared_module(), y dylid eu defnyddio yn lle'r rust_crate_type anghymeradwy.

Ffynhonnell: opennet.ru

Ychwanegu sylw