Meson build sistema rilaxx 0.51

ippubblikat tibni rilaxx tas-sistema Meson 0.51, 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).

Il-kumpilazzjoni inkroċjata u l-bini fuq Linux, macOS u Windows bl-użu ta 'GCC, Clang, Visual Studio u kompilaturi oħra huma appoġġjati. 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.51:

  • Appoġġ miżjud għall-bini trasparenti ta 'proġetti eżistenti li jużaw CMake build scripts. Meson issa jista 'jibni direttament sottoproġetti sempliċi (bħal libreriji singoli) billi juża l-modulu CMake, simili għal sottoproġetti standard (inklużi sottoproġetti CMake jistgħu jitqiegħdu fid-direttorju tas-sottoproġetti);
  • Għall-kompilaturi kollha użati, l-ittestjar preliminari huwa inkluż permezz tal-assemblaġġ u l-eżekuzzjoni ta 'fajls tat-test sempliċi (kontroll tas-sanità), mhux limitat għall-ittestjar ta' bnadar speċifikati mill-utent għal cross-compilers (minn issa 'l quddiem, kompilaturi indiġeni għall-pjattaforma attwali jiġu kkontrollati wkoll) .
  • Żid il-ħila li tiddefinixxi l-għażliet tal-linja tal-kmand użati waqt il-kumpilazzjoni inkroċjata, b'irbit billi jiġi speċifikat prefiss tal-pjattaforma qabel l-għażla. Preċedentement, l-għażliet tal-linja tal-kmand koprew biss bini indiġeni u ma setgħux jiġu speċifikati għall-kumpilazzjoni inkroċjata. L-għażliet tal-linja tal-kmand issa japplikaw irrispettivament minn jekk qed tibni b'mod nattiv jew cross-compiling, u tiżgura li native u cross-builds jipproduċu riżultati identiċi;
  • Miżjud il-ħila li tispeċifika l-bandiera "--cross-file" aktar minn darba fuq il-linja tal-kmand biex telenka diversi fajls inkroċjati;
  • Appoġġ miżjud għall-kompilatur ICL (Intel C/C++ Compiler) għall-pjattaforma Windows (ICL.EXE u ifort);
  • Miżjud appoġġ inizjali ta 'għodda għal CPU Xtensa (xt-xcc, xt-xc++, xt-nm);
  • Il-metodu “get_variable” ġie miżjud mal-oġġett “dipendenza”, li jippermettilek li tikseb il-valur ta’ varjabbli mingħajr ma tqis it-tip tad-dipendenza kurrenti (pereżempju, dep.get_variable(pkg-config : 'var- isem', cmake : 'COP_VAR_NAME));
  • Żid argument ġdid ta' għażliet ta' assemblaġġ fil-mira, "link_language", biex tispeċifika b'mod espliċitu l-lingwa użata meta ssejjaħ il-linker. Per eżempju, programm Fortran prinċipali jista 'jsejjaħ kodiċi C/C++, li awtomatikament jagħżel C/C++ meta l-linker Fortran għandu jintuża;
  • L-immaniġġjar tal-bnadar tal-preproċessur CPPFLAGS inbidel. Billi Meson qabel kienet maħżuna CPPFLAGS u bnadar ta’ kumpilazzjoni speċifiċi għal-lingwa (CFLAGS, CXXFLAGS) separatament, issa huma pproċessati b’mod inseparabbli u l-bnadar elenkati f’CPPFLAGS jintużaw bħala sors ieħor ta’ bnadar ta’ kumpilazzjoni għal-lingwi li jappoġġjawhom;
  • L-output ta' custom_target u custom_target[i] issa jista' jintuża bħala argumenti fl-operazzjonijiet link_with u link_whole;
  • Il-ġeneraturi issa għandhom il-kapaċità li jispeċifikaw dipendenzi addizzjonali billi jużaw l-għażla "jiddependi" (per eżempju, generator(program_runner, output: ['@[protett bl-email]'], jiddependi: exe));
  • Miżjud għażla statika għal find_library biex tippermetti li t-tfittxija tinkludi biss libreriji marbuta b'mod statiku;
  • Għal python.find_installation, ġiet miżjuda l-abbiltà li tiddetermina l-preżenza ta 'modulu Python partikolari għal verżjoni speċifika ta' Python;
  • Miżjud modulu ġdid unstable-kconfig għall-parsing tal-fajls kconfig;
  • Żid kmand ġdid "subprojects foreach", li jieħu kmand bl-argumenti u jmexxih fid-direttorji kollha tas-sottoproġetti;

Sors: opennet.ru

Żid kumment