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
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
- 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