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

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

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

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

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

  • Ավելացվեց փորձնական աջակցություն Webassembly-ի համար՝ օգտագործելով Emscripten-ը որպես կոմպիլյատոր;
  • Զգալիորեն բարելավվել և աշխատանքային վիճակի է բերվել Illumos և Solaris հարթակների աջակցությունը.
  • Ապահովում է, որ gettext-ի վրա հիմնված միջազգայնացման սկրիպտները անտեսվեն, եթե համակարգում տեղադրված չէ gettext գործիքակազմը (նախկինում սխալ է ցուցադրվել i18n մոդուլն առանց gettext համակարգերում օգտագործելիս);
  • Բարելավված աջակցություն ստատիկ գրադարաններին: Չտեղադրված ստատիկ գրադարաններից օգտվելիս բազմաթիվ խնդիրներ լուծվել են.
  • Ավելացվեց բառարաններ օգտագործելու հնարավորություն՝ շրջակա միջավայրի փոփոխականներ նշանակելու համար: Միջավայր () կանչելիս առաջին տարրն այժմ կարող է սահմանվել որպես բառարան, որտեղ միջավայրի փոփոխականները սահմանվում են բանալի/արժեք ձևով։ Այս փոփոխականները կտեղափոխվեն ambient_object, կարծես դրանք առանձին դրված լինեն set() մեթոդի միջոցով: Բառարաններն այժմ կարող են նաև փոխանցվել տարբեր գործառույթների, որոնք աջակցում են «env» փաստարկին.
  • Ավելացվեց «runtarget alias_target(target_name, dep1, ...)» ֆունկցիան, որը ստեղծում է նոր առաջին մակարդակի կառուցման թիրախ, որը կարող է կանչվել ընտրված build backend-ով (օրինակ՝ «ninja target_name»): Կառուցման այս թիրախը որևէ հրաման չի գործադրում, բայց ապահովում է, որ բոլոր կախվածությունները ստեղծվեն.
  • Միացված է PKG_CONFIG_SYSROOT_DIR միջավայրի փոփոխականի ավտոմատ կարգավորումը խաչաձև կոմպիլյացիայի ժամանակ, եթե կա sys_root պարամետր «[հատկություններ]» բաժնում;
  • Ավելացվեց «--gdb-path» տարբերակը՝ որոշելու ճանապարհը դեպի GDB վրիպազերծիչ, երբ նշելով «--gdb testname» տարբերակը՝ GDB-ն գործարկելու նշված թեստային սցենարով;
  • Ավելացվեց կոկիկ կառուցման թիրախի ավտոմատ հայտնաբերում, որպեսզի գործարկվի այս լանջը բոլոր սկզբնաղբյուր ֆայլերով: Թիրախը ստեղծվում է, եթե clang-tidy հասանելի է համակարգում, և «.clang-tidy» (կամ «_clang-tidy») ֆայլը սահմանված է նախագծի արմատում;
  • Ավելացվել է կախվածություն («բլոկներ»)՝ Clang ընդլայնման մեջ օգտագործելու համար Blocks;
  • Կապակցող և կոմպիլյատորի դիտումները առանձնացված են, ինչը թույլ է տալիս օգտագործել կոմպիլյատորների և կապակցիչների տարբեր համակցություններ.
  • ի հավելումն all_sources() մեթոդի SourceSet օբյեկտներին ավելացվել է all_dependencies() մեթոդը;
  • run_project_tests.py-ում «--only» տարբերակը ավելացվել է ընտրովի կատարվող թեստերին (օրինակ՝ «python run_project_tests.py — միայն fortran python3»);
  • Find_program() ֆունկցիան այժմ հնարավորություն ունի որոնել միայն ծրագրի պահանջվող տարբերակները (տարբերակը որոշվում է ծրագիրը գործարկելով «-version» տարբերակով);
  • Սիմվոլների արտահանումը վերահսկելու համար vs_module_defs տարբերակը ավելացվել է shared_module() ֆունկցիային, որը նման է shared_library();
  • kconfig մոդուլը ընդլայնվել է, որպեսզի աջակցի configure_file() մուտքային ֆայլը նշելու համար;
  • Ավելացրել է «command:» մշակողների համար մի քանի մուտքային ֆայլեր նշելու հնարավորություն configure_file();
  • Արխիվ ստեղծելու «dist» հրամանը տեղափոխվել է առաջին մակարդակի հրամանների կատեգորիա (նախկինում հրամանը կապված էր ninja-ի հետ): Ավելացվեց «--formats» տարբերակը՝ ստեղծվելիք արխիվների տեսակները սահմանելու համար (օրինակ՝
    «meson dist -formats=xztar,zip»):

Source: opennet.ru

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