Rhyddhau system adeiladu Meson 0.52

Cyhoeddwyd rhyddhau system adeiladu Meson 0.52, 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 a cyflenwi trwyddedig o dan Apache 2.0.

Nod allweddol datblygiad Meson yw darparu cyflymder uchel y broses ymgynnull ynghyd â chyfleustra a rhwyddineb defnydd. Yn lle'r cyfleustodau gwneud, mae'r adeilad rhagosodedig yn defnyddio'r pecyn cymorth Ninja, ond mae hefyd yn bosibl defnyddio backends eraill, megis xcode a VisualStudio. 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 pennu mewn iaith parth-benodol wedi'i symleiddio, maent yn hynod ddarllenadwy a dealladwy i'r defnyddiwr (fel y bwriadwyd gan yr awduron, dylai'r datblygwr dreulio lleiafswm o amser yn ysgrifennu rheolau).

Cefnogwyd 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 mai dim ond cydrannau sy'n ymwneud yn uniongyrchol â newidiadau a wnaed ers yr adeiladu diwethaf sy'n cael eu hailadeiladu. Gellir defnyddio Meson i gynhyrchu adeiladau ailadroddadwy, lle mae rhedeg yr adeilad mewn gwahanol amgylcheddau yn arwain at gynhyrchu ffeiliau gweithredadwy hollol union yr un fath.

Y prif arloesiadau Meson 0.52:

  • Ychwanegwyd cefnogaeth arbrofol ar gyfer Webassembly gan ddefnyddio Emscripten fel casglwr;
  • Mae'r gefnogaeth ar gyfer llwyfannau Illumos a Solaris wedi'i wella'n sylweddol ac wedi dod i gyflwr gweithio;
  • Yn sicrhau bod sgriptiau rhyngwladoli seiliedig ar gettext yn cael eu hanwybyddu os nad oes gan y system y pecyn cymorth gettext wedi'i osod (yn flaenorol, dangoswyd gwall wrth ddefnyddio'r modiwl i18n ar systemau heb gettext);
  • Gwell cefnogaeth i lyfrgelloedd sefydlog. Mae llawer o broblemau wrth ddefnyddio llyfrgelloedd sefydlog heb eu gosod wedi'u datrys;
  • Ychwanegwyd y gallu i ddefnyddio geiriaduron i neilltuo newidynnau amgylchedd. Wrth alw amgylchedd (), gellir nodi'r elfen gyntaf bellach fel geiriadur lle mae newidynnau amgylchedd yn cael eu diffinio ar ffurf allwedd / gwerth. Bydd y newidynnau hyn yn cael eu trosglwyddo i amgylchedd_object fel pe baent wedi'u gosod yn unigol trwy'r dull set(). Gellir hefyd yn awr drosglwyddo geiriaduron i wahanol swyddogaethau sy'n cefnogi dadl "env";
  • Ychwanegwyd swyddogaeth "runtarget alias_target(target_name, dep1,...)" sy'n creu targed adeiladu lefel gyntaf newydd y gellir ei alw gyda'r backend adeiladu a ddewiswyd (e.e. "ninja target_name"). Nid yw'r targed adeiladu hwn yn rhedeg unrhyw orchmynion, ond mae'n sicrhau bod pob dibyniaeth yn cael ei adeiladu;
  • Wedi galluogi gosodiad awtomatig y newidyn amgylchedd PKG_CONFIG_SYSROOT_DIR yn ystod traws-gasglu os oes gosodiad sys_root yn yr adran “[eiddo]”;
  • Ychwanegwyd opsiwn "--gdb-path" i benderfynu ar y llwybr i'r dadfygiwr GDB wrth nodi'r opsiwn "--gdb testname" i redeg GDB gyda'r sgript prawf penodedig;
  • Ychwanegwyd canfod awtomatig o'r targed adeiladu clan-taclus i redeg y lint hon gyda'r holl ffeiliau ffynhonnell. Crëir y targed os oes clang-tidy ar gael yn y system a diffinnir y ffeil “.clang-tidy” (neu “_clang-tidy”) yng ngwraidd y prosiect;
  • Dibyniaeth ychwanegol ('blociau') i'w defnyddio yn yr estyniad Clang Blociau;
  • Mae golygfeydd y cysylltydd a'r casglwr wedi'u gwahanu, gan ganiatáu i gyfuniadau gwahanol o gasglwyr a chysylltwyr gael eu defnyddio;
  • Wedi ychwanegu dull all_dependencies() at wrthrychau SourceSet yn ogystal â dull all_sources();
  • Yn run_project_tests.py, mae'r opsiwn “--only” wedi'i ychwanegu i redeg profion yn ddetholus (er enghraifft, “python run_project_tests.py —only fortran python3”);
  • Bellach mae gan y swyddogaeth find_program() y gallu i chwilio am fersiynau gofynnol o raglen yn unig (pennir y fersiwn trwy redeg y rhaglen gyda'r opsiwn "-version");
  • I reoli allforio symbolau, mae'r opsiwn vs_module_defs wedi'i ychwanegu at y swyddogaeth shared_module(), tebyg i shared_library();
  • Mae'r modiwl kconfig wedi'i ehangu i gynnal configure_file() ar gyfer nodi ffeil mewnbwn;
  • Ychwanegwyd y gallu i nodi ffeiliau mewnbwn lluosog ar gyfer trinwyr “command:” i configure_file ();
  • Mae'r gorchymyn “dist” ar gyfer creu archif wedi'i symud i'r categori o orchmynion lefel gyntaf (yn flaenorol roedd y gorchymyn ynghlwm wrth ninja). Ychwanegwyd opsiwn "--formats" i ddiffinio'r mathau o archifau i'w creu (er enghraifft,
    "meson dist -formats = xztar, zip").

Ffynhonnell: opennet.ru

Ychwanegu sylw