Meson build համակարգի թողարկում 0.51

հրապարակված կառուցել համակարգի թողարկում Մեզոն 0.51, որն օգտագործվում է այնպիսի նախագծեր կառուցելու համար, ինչպիսիք են X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME և GTK+: Մեզոնի կոդը գրված է Python-ում և մատակարարված լիցենզավորված Apache 2.0-ի համաձայն:

Meson-ի մշակման հիմնական նպատակն է ապահովել հավաքման գործընթացի բարձր արագությունը՝ զուգորդված հարմարավետության և օգտագործման հարմարավետության հետ: Make utility-ի փոխարեն լռելյայն build-ն օգտագործում է գործիքակազմը Ninja, բայց հնարավոր է նաև օգտագործել այլ հետին պլաններ, ինչպիսիք են xcode-ը և VisualStudio-ն: Համակարգն ունի ներկառուցված բազմահարթակ կախվածության կարգավորիչ, որը թույլ է տալիս օգտագործել Meson՝ բաշխումների համար փաթեթներ ստեղծելու համար: Ասամբլեայի կանոնները նշված են պարզեցված տիրույթին հատուկ լեզվով, շատ ընթեռնելի և հասկանալի են օգտագործողի համար (ինչպես նախատեսված է հեղինակների կողմից, մշակողը պետք է նվազագույն ժամանակ ծախսի կանոններ գրելու համար):

Աջակցվում է Linux-ի, macOS-ի և Windows-ի վրա խաչաձև կոմպիլյացիան և կառուցումը GCC-ի, Clang-ի, Visual Studio-ի և այլ կոմպիլյատորների միջոցով: Հնարավոր է նախագծեր կառուցել տարբեր ծրագրավորման լեզուներով, այդ թվում՝ C, C++, Fortran, Java և Rust: Աջակցվում է հավելյալ կառուցման ռեժիմը, որում վերակառուցվում են միայն այն բաղադրիչները, որոնք ուղղակիորեն կապված են վերջին կառուցումից հետո կատարված փոփոխությունների հետ: Meson-ը կարող է օգտագործվել կրկնվող կառուցումներ ստեղծելու համար, որոնց դեպքում build-ը տարբեր միջավայրերում գործարկելը հանգեցնում է բոլորովին նույնական գործարկվող ֆայլերի ստեղծմանը:

Հիմնական նորամուծություններ Մեզոն 0.51:

  • Ավելացվել է աջակցություն գոյություն ունեցող նախագծերի թափանցիկ կառուցման համար, որոնք օգտագործում են 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

Добавить комментарий