Meson build sistema rilaxx 0.52

ippubblikat tibni rilaxx tas-sistema Meson 0.52, li jintuża biex jinbnew proġetti bħal X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME u GTK+. Il-kodiċi Meson huwa miktub f'Python u fornuti liċenzjat taħt Apache 2.0.

L-għan ewlieni tal-iżvilupp Meson huwa li jipprovdi veloċità għolja tal-proċess tal-assemblaġġ flimkien mal-konvenjenza u l-faċilità tal-użu. Minflok l-utilità make, il-build default juża l-għodda Ninja, iżda huwa wkoll possibbli li tuża backends oħra, bħal xcode u VisualStudio. Is-sistema għandha mmaniġġjar tad-dipendenza multi-pjattaforma mibni li jippermettilek tuża Meson biex tibni pakketti għad-distribuzzjonijiet. Ir-regoli tal-assemblaġġ huma speċifikati f'lingwa simplifikata speċifika għad-dominju, jinqraw ħafna u jinftiehmu mill-utent (kif maħsub mill-awturi, l-iżviluppatur għandu jqatta 'minimu ta' ħin jikteb ir-regoli).

Appoġġjati cross-compile u tibni fuq Linux, Illumos/Solaris, FreeBSD, NetBSD, DragonFly BSD, Haiku, macOS u Windows billi tuża GCC, Clang, Visual Studio u kompilaturi oħra. Huwa possibbli li jinbnew proġetti f'diversi lingwi ta' programmar, inklużi C, C++, Fortran, Java u Rust. Il-mod tal-bini inkrementali huwa appoġġjat, li fih jinbnew mill-ġdid biss komponenti direttament relatati mal-bidliet li saru mill-aħħar bini. Meson jista 'jintuża biex jiġġenera bini ripetibbli, li fih it-tħaddim tal-bini f'ambjenti differenti jirriżulta fil-ġenerazzjoni ta' fajls eżekutibbli kompletament identiċi.

Il-prinċipali innovazzjonijiet Meson 0.52:

  • Miżjud appoġġ sperimentali għal Webassembly bl-użu ta 'Emscripten bħala kompilatur;
  • L-appoġġ għall-pjattaformi Illumos u Solaris ġie mtejjeb b'mod sinifikanti u nġieb f'kundizzjoni tax-xogħol;
  • Jiżgura li skripts ta' internazzjonalizzazzjoni bbażati fuq gettext jiġu injorati jekk is-sistema ma jkollhiex l-għodda gettext installata (preċedentement, kien muri żball meta jintuża l-modulu i18n fuq sistemi mingħajr gettext);
  • Appoġġ imtejjeb għal libreriji statiċi. Ġew solvuti ħafna problemi meta jintużaw libreriji statiċi mhux installati;
  • Żid il-ħila li tuża dizzjunarji biex tassenja varjabbli ambjentali. Meta ssejjaħ ambjent(), l-ewwel element issa jista 'jiġi speċifikat bħala dizzjunarju li fih il-varjabbli tal-ambjent huma definiti f'forma ta' ċavetta/valur. Dawn il-varjabbli se jiġu trasferiti għal environment_object bħallikieku kienu ssettjati individwalment permezz tal-metodu set(). Dizzjunarji issa jistgħu wkoll jiġu mgħoddija lil diversi funzjonijiet li jappoġġjaw argument "env";
  • Funzjoni miżjuda "runtarget alias_target(target_name, dep1, ...)" li toħloq mira ġdida tal-bini tal-ewwel livell li tista' tissejjaħ bil-backend tal-bini magħżul (eż. "ninja target_name"). Din il-mira tal-bini ma tmexxi l-ebda kmandi, iżda tiżgura li d-dipendenzi kollha jinbnew;
  • Ippermetta l-issettjar awtomatiku tal-varjabbli tal-ambjent PKG_CONFIG_SYSROOT_DIR waqt il-kumpilazzjoni inkroċjata jekk ikun hemm issettjar tas-sys_root fit-taqsima "[propjetajiet]";
  • Miżjud għażla "--gdb-path" biex tiddetermina l-mogħdija għad-debugger GDB meta tispeċifika l-għażla "--gdb testname" biex tmexxi GDB bl-iskript tat-test speċifikat;
  • Miżjud skoperta awtomatika tal-mira tal-bini clang-tidy biex tmexxi dan linter mal-fajls kollha tas-sors. Il-mira tinħoloq jekk clang-tidy ikun disponibbli fis-sistema u l-fajl ".clang-tidy" (jew "_clang-tidy") huwa definit fl-għerq tal-proġett;
  • Dipendenza miżjuda ('blokki') għall-użu fl-estensjoni Clang Blokki;
  • L-opinjonijiet tal-linker u tal-kompilatur huma separati, u jippermettu li jintużaw kombinazzjonijiet differenti ta' kompilaturi u linkers;
  • Miżjud all_dependencies() il-metodu għall-oġġetti SourceSet flimkien mal-metodu all_sources();
  • F'run_project_tests.py, l-għażla “--only” ġiet miżjuda biex tmexxi b'mod selettiv it-testijiet (per eżempju, “python run_project_tests.py —fortran python3 biss”);
  • Il-funzjoni find_program() issa għandha l-abbiltà li tfittex biss verżjonijiet meħtieġa ta 'programm (il-verżjoni hija determinata billi tħaddem il-programm bl-għażla "-version");
  • Biex tikkontrolla l-esportazzjoni tas-simboli, l-għażla vs_module_defs ġiet miżjuda mal-funzjoni shared_module(), simili għal shared_library();
  • Il-modulu kconfig ġie estiż biex jappoġġja configure_file() għall-ispeċifikazzjoni ta' fajl ta' input;
  • Miżjud il-ħila li tispeċifika fajls ta' input multipli għal "kmand:" handlers biex configure_file();
  • Il-kmand "dist" għall-ħolqien ta 'arkivju ġie mċaqlaq għall-kategorija ta' kmandi tal-ewwel livell (preċedentement il-kmand kien marbut man-ninja). Miżjud għażla "--formats" biex tiddefinixxi t-tipi ta' arkivji li għandhom jinħolqu (per eżempju,
    "meson dist -formats=xztar,zip").

Sors: opennet.ru

Żid kumment