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
Transkompilado kaj konstruado sur Linukso, macOS kaj Vindozo uzante GCC, Clang, Visual Studio kaj aliajn kompililojn estas subtenataj. 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
- Aldonita subteno por travidebla konstruado de ekzistantaj projektoj, kiuj uzas CMake-konstruajn skriptojn. Meson nun povas rekte konstrui simplajn subprojektojn (kiel ekzemple ununuraj bibliotekoj) uzante la CMake-modulon, simile al normaj subprojektoj (inkluzive de CMake-subprojektoj povas esti metitaj en la subprojekta dosierujo);
- Por ĉiuj uzitaj kompililoj, prepara testado estas inkluzivita per la kunigo kaj ekzekuto de simplaj testdosieroj (prudenta kontrolo), ne limigita al testado de uzant-specifitaj flagoj por kruc-kompililoj (de nun, kompililoj indiĝenaj al la nuna platformo ankaŭ estas kontrolitaj) .
- Aldonis la kapablon difini komandliniajn opciojn uzatajn dum kruc-kompilo, kun ligado per specifo de platformprefikso antaŭ la opcio. Antaŭe, komandliniaj opcioj nur kovris indiĝenajn konstruojn kaj ne povus esti specifitaj por kruc-kompilo. Komandliniaj opcioj nun validas sendepende de ĉu vi konstruas denaske aŭ transkompilas, certigante ke denaskaj kaj kruckonstruaĵoj produktas identajn rezultojn;
- Aldonita la eblo specifi la flagon "--cross-file" pli ol unufoje sur la komandlinio por listigi plurajn krucdosierojn;
- Aldonita subteno por la ICL-kompililo (Intel C/C++ Compiler) por la Vindoza platformo (ICL.EXE kaj ifort);
- Aldonita komenca ilaro subteno por Xtensa CPUs (xt-xcc, xt-xc++, xt-nm);
- La metodo "get_variable" estis aldonita al la objekto "dependeco", kiu ebligas al vi ricevi la valoron de variablo sen konsideri la tipon de la nuna dependeco (ekzemple, dep.get_variable(pkg-config : 'var-). nomo', cmake : 'COP_VAR_NAME));
- Aldonita nova argumento pri cel-asembla opcio, "link_language", por eksplicite specifi la lingvon uzatan kiam oni vokas la ligilon. Ekzemple, ĉefa Fortran-programo povus voki C/C++-kodon, kiu aŭtomate elektus C/C++ kiam la Fortran-ligilo devus esti uzita;
- La uzado de CPPFLAGS antaŭprocesorflagoj estis ŝanĝita. Dum Meson antaŭe stokis CPPFLAGS kaj lingvospecifajn kompilajn flagojn (CFLAGS, CXXFLAGS) aparte, ili nun estas prilaboritaj nedisigeble kaj la flagoj listigitaj en CPPFLAGS estas uzataj kiel alia fonto de kompilflagoj por lingvoj kiuj subtenas ilin;
- La eligo de custom_target kaj custom_target[i] nun povas esti uzata kiel argumentoj en la operacioj link_with kaj link_whole;
- Generatoroj nun havas la kapablon specifi pliajn dependecojn uzante la opcion "depends" (ekzemple, generator(program_runner, output: ['@[retpoŝte protektita]'], dependas: exe));
- Aldonita statika opcio al find_library por permesi al la serĉo inkluzivi nur statike ligitajn bibliotekojn;
- Por python.find_installation, la kapablo determini la ĉeeston de donita Python-modulo por specifa versio de Python estis aldonita;
- Aldonita nova modulo unstable-kconfig por analizi kconfig dosierojn;
- Aldonita nova komando "subprojektoj por ĉiu", kiu prenas komandon kun argumentoj kaj rulas ĝin en ĉiuj subprojektaj dosierujoj;
fonto: opennet.ru