Meson-konstrua sistemo eldono 0.52

eldonita konstrui sisteman liberigon Mesono 0.52, kiu estas uzata por konstrui projektojn kiel X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME kaj GTK+. La Meson-kodo estas skribita en Python kaj provizis licencita sub Apache 2.0.

La ŝlosila celo de Meson-evoluo estas provizi altan rapidecon de la kunigprocezo kombinita kun oportuno kaj facileco de uzo. Anstataŭ la make-utilo, la defaŭlta konstruo uzas la ilaron ninja, sed ankaŭ eblas uzi aliajn backends, kiel xcode kaj VisualStudio. La sistemo havas enkonstruitan plurplatforman dependectraktilon, kiu permesas vin uzi Meson por konstrui pakaĵojn por distribuoj. Asembleaj reguloj estas specifitaj en simpligita domajna-specifa lingvo, estas tre legeblaj kaj kompreneblaj por la uzanto (kiel celite de la aŭtoroj, la programisto devus pasigi minimumon da tempo skribante regulojn).

Subtenita kruckompilu kaj konstruu sur Linukso, Illumos/Solaris, FreeBSD, NetBSD, DragonFly BSD, Haiku, macOS kaj Vindozo uzante GCC, Clang, Visual Studio kaj aliajn kompililojn. Eblas konstrui projektojn en diversaj programlingvoj, inkluzive de C, C++, Fortran, Java kaj Rust. Pliiga konstrureĝimo estas subtenata, en kiu nur komponentoj rekte rilataj al ŝanĝoj faritaj ekde la lasta konstruo estas rekonstruitaj. Meson povas esti uzata por generi ripeteblajn konstruojn, en kiuj ruli la konstruon en malsamaj medioj rezultigas la generacion de tute identaj ruleblaj dosieroj.

Ĉefa novigoj Mezono 0.52:

  • Aldonita eksperimenta subteno por Webassembly uzante Emscripten kiel kompililon;
  • Subteno por la platformoj Illumos kaj Solaris estis signife plibonigita kaj alportita al laborkondiĉo;
  • Certigas, ke gettext-bazitaj internaciigskriptoj estas ignoritaj se la sistemo ne havas la ilaron gettext instalita (antaŭe, eraro estis montrita kiam oni uzas la i18n-modulon ĉe sistemoj sen gettext);
  • Plibonigita subteno por senmovaj bibliotekoj. Multaj problemoj dum uzado de malinstalitaj senmovaj bibliotekoj estis solvitaj;
  • Aldonita la kapablo uzi vortarojn por atribui mediajn variablojn. Dum vokado de medio(), la unua elemento nun povas esti specifita kiel vortaro en kiu mediovariabloj estas difinitaj en ŝlosilo/valora formo. Ĉi tiuj variabloj estos transdonitaj al medio_objekto kvazaŭ ili estus individue fiksitaj per la metodo set(). Vortaroj ankaŭ nun povas esti pasitaj al diversaj funkcioj kiuj subtenas "env" argumenton;
  • Aldonita funkcio "runtarget alias_target(cel_nomo, dep1, ...)" kiu kreas novan unuanivelan konstrucelon kiu povas esti vokita kun la elektita konstrua backend (ekz. "ninja cel_nomo"). Ĉi tiu konstrucelo ne rulas iujn komandojn, sed certigas, ke ĉiuj dependecoj estas konstruitaj;
  • Ebligita aŭtomata agordo de la mediovariablo PKG_CONFIG_SYSROOT_DIR dum transkompilo se estas sys_root agordo en la sekcio "[propraĵoj]";
  • Aldonita "--gdb-path" opcio por determini la vojon al la GDB-erarseĉilo kiam oni specifigas la opcion "--gdb testname" por ruli GDB kun la specifita testa skripto;
  • Aldonita aŭtomata detekto de la klang-orda konstrucelo por ruli ĉi tiun linter kun ĉiuj fontdosieroj. La celo estas kreita se clang-tidy estas disponebla en la sistemo kaj la dosiero ".clang-tidy" (aŭ "_clang-tidy") estas difinita en la projekta radiko;
  • Aldonita dependeco('blokoj') por uzo en la etendaĵo Clang blokoj;
  • La ligilo kaj kompililvidoj estas apartigitaj, permesante malsamajn kombinaĵojn de kompililoj kaj ligiloj esti uzitaj;
  • Aldonita all_dependencies() metodo al SourceSet objektoj krom all_sources() metodo;
  • En run_project_tests.py, la opcio "--only" estis aldonita por selekteme ruli testojn (ekzemple, "python run_project_tests.py —nur fortran python3");
  • La funkcio find_program() nun havas la kapablon serĉi nur bezonatajn versiojn de programo (la versio estas determinita per rulado de la programo kun la opcio "-version");
  • Por kontroli la eksportadon de simboloj, la opcio vs_module_defs estis aldonita al la funkcio shared_module(), simile al shared_library();
  • La modulo kconfig estis vastigita por subteni configure_file() por specifi enigdosieron;
  • Aldonita la kapablo specifi plurajn enigajn dosierojn por "command:" pritraktiloj al configure_file();
  • La komando "dist" por krei arkivon estis movita al la kategorio de unuanivelaj komandoj (antaŭe la komando estis ligita al Ŝinobo). Aldonita "--formatoj" opcio por difini la specojn de kreotaj arkivoj (ekzemple,
    "meson dist -formats=xztar,zip").

fonto: opennet.ru

Aldoni komenton