Meson-ի մշակման հիմնական նպատակն է ապահովել հավաքման գործընթացի բարձր արագությունը՝ զուգորդված հարմարավետության և օգտագործման հարմարավետության հետ: Make utility-ի փոխարեն լռելյայն build-ն օգտագործում է գործիքակազմը
Աջակցվում է Linux-ի, macOS-ի և Windows-ի վրա խաչաձև կոմպիլյացիան և կառուցումը GCC-ի, Clang-ի, Visual Studio-ի և այլ կոմպիլյատորների միջոցով: Հնարավոր է նախագծեր կառուցել տարբեր ծրագրավորման լեզուներով, այդ թվում՝ C, C++, Fortran, Java և Rust: Աջակցվում է հավելյալ կառուցման ռեժիմը, որում վերակառուցվում են միայն այն բաղադրիչները, որոնք ուղղակիորեն կապված են վերջին կառուցումից հետո կատարված փոփոխությունների հետ: Meson-ը կարող է օգտագործվել կրկնվող կառուցումներ ստեղծելու համար, որոնց դեպքում build-ը տարբեր միջավայրերում գործարկելը հանգեցնում է բոլորովին նույնական գործարկվող ֆայլերի ստեղծմանը:
Հիմնական
- Ավելացվել է աջակցություն գոյություն ունեցող նախագծերի թափանցիկ կառուցման համար, որոնք օգտագործում են CMake build scripts: Meson-ն այժմ կարող է ուղղակիորեն կառուցել պարզ ենթանախագծեր (օրինակ՝ առանձին գրադարաններ)՝ օգտագործելով CMake մոդուլը, որոնք նման են ստանդարտ ենթանախագծերին (ներառյալ CMake ենթանախագծերը կարող են տեղադրվել ենթանախագծերի գրացուցակում);
- Բոլոր օգտագործված կոմպիլյատորների համար նախնական փորձարկումն ընդգրկված է պարզ թեստային ֆայլերի հավաքման և կատարման միջոցով (խելամտության ստուգում), որը չի սահմանափակվում օգտատիրոջ կողմից նշված դրոշների փորձարկումով խաչաձև կոմպիլյատորների համար (այսուհետ ստուգվում են նաև ընթացիկ հարթակի բնիկ կոմպիլյատորները): .
- Ավելացվեց խաչաձև կոմպիլյացիայի ժամանակ օգտագործվող հրամանի տողերի ընտրանքները սահմանելու հնարավորությունը՝ կապելով՝ տարբերակից առաջ պլատֆորմի նախածանց նշելով: Նախկինում հրամանի տողի ընտրանքները ընդգրկում էին միայն բնիկ կառուցումները և չէին կարող նշվել խաչաձև կոմպիլյացիայի համար: Հրամանի տողերի տարբերակներն այժմ կիրառվում են՝ անկախ նրանից՝ դուք կառուցում եք բնիկ, թե խաչաձև կոմպիլինգ՝ ապահովելով, որ բնիկ և խաչաձև կառուցումներ արտադրում են նույն արդյունքները.
- Ավելացրել է հրամանի տողում մեկից ավելի անգամ «--cross-file» դրոշը նշելու հնարավորություն՝ մի քանի խաչաձեւ ֆայլեր թվարկելու համար.
- Ավելացվել է աջակցություն ICL կոմպիլյատորին (Intel C/C++ Compiler) Windows պլատֆորմի համար (ICL.EXE և ifort);
- Ավելացվել է նախնական գործիքակազմի աջակցություն CPU Xtensa-ի համար (xt-xcc, xt-xc++, xt-nm);
- «կախվածություն» օբյեկտին ավելացվել է «get_variable» մեթոդը, որը թույլ է տալիս ստանալ փոփոխականի արժեքը՝ առանց հաշվի առնելու ընթացիկ կախվածության տեսակը (օրինակ՝ dep.get_variable (pkg-config: 'var- անունը', cmake : 'COP_VAR_NAME));
- Ավելացրել է նոր նպատակային հավաքման ընտրանքների փաստարկ՝ «link_language»՝ հստակորեն նշելու այն լեզուն, որն օգտագործվում է կապակցիչը կանչելիս: Օրինակ, հիմնական Fortran ծրագիրը կարող է կանչել C/C++ կոդը, որն ավտոմատ կերպով կընտրի C/C++, երբ պետք է օգտագործվի Fortran կապիչը։
- CPPFLAGS նախապրոցեսորի դրոշների կառավարումը փոխվել է: Մինչդեռ Meson-ը նախկինում պահում էր CPPFLAGS-ը և լեզվին հատուկ կոմպիլացիոն դրոշները (CFLAGS, CXXFLAGS), այժմ դրանք մշակվում են անքակտելիորեն, և CPPFLAGS-ում թվարկված դրոշներն օգտագործվում են որպես դրանց աջակցող լեզուների կոմպիլացիոն դրոշների այլ աղբյուր.
- Custom_target և custom_target[i]-ի ելքը այժմ կարող է օգտագործվել որպես արգումենտ link_with և link_whole գործողություններում;
- Գեներատորներն այժմ հնարավորություն ունեն նշելու լրացուցիչ կախվածություններ՝ օգտագործելով «կախված է» տարբերակը (օրինակ՝ գեներատոր (program_runner, ելք՝ ['@[էլեկտրոնային փոստով պաշտպանված]'], կախված է. exe));
- Find_library-ին ավելացրել է ստատիկ տարբերակ՝ որոնմանը թույլ տալու համար ներառել միայն ստատիկորեն կապված գրադարաններ;
- Python.find_installation-ի համար ավելացվել է Python-ի որոշակի տարբերակի համար տվյալ Python մոդուլի առկայությունը որոշելու հնարավորությունը.
- Ավելացվեց անկայուն-kconfig նոր մոդուլ kconfig ֆայլերի վերլուծության համար;
- Ավելացրել է նոր հրաման «subprojects foreach», որն ընդունում է արգումենտներով հրաման և գործարկում այն բոլոր ենթանախագծային գրացուցակներում;
Source: opennet.ru