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

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

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

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

Meson 1.1-ի հիմնական նորամուծությունները.

  • Նոր «objects:» արգումենտն ավելացվել է declare_dependency()-ին՝ օբյեկտները ուղղակիորեն գործարկվողներին կցելու համար որպես ներքին կախվածություններ, որոնք չեն պահանջում link_who:
  • «Meson devenv --dump» հրամանը կամընտիր կարողություն ունի նշելու ֆայլ՝ միջավայրի փոփոխականներ գրելու համար՝ ստանդարտ ելքային հոսքին ելքի փոխարեն:
  • Ավելացրել է FeatureOption.enable_if և FeatureOption.disable_if մեթոդները, որպեսզի ավելի հեշտ դարձնի պայմանականներ ստեղծելը կախվածության() ֆունկցիայի պարամետրերը փոխանցելու համար: opt = get_option ('հատկանիշ').disable_if (not foo, error_message: 'Չի կարող միացնել գործառույթը, երբ foo-ն նույնպես միացված չէ') dep = կախվածություն ('foo', պարտադիր է: opt)
  • Թույլատրվում է գեներացված օբյեկտներ փոխանցել «օբյեկտներ՝» արգումենտների մեջ։
  • Ծրագրի գործառույթն աջակցում է ֆայլերի տեղադրմանը ծրագրի լիցենզիաների մասին տեղեկություններով:
  • «Sudo meson install»-ի իրականացումը ապահովում է արտոնությունների վերականգնում թիրախային հարթակների վերակառուցման ժամանակ:
  • «Meson install» հրամանը հնարավորություն է տալիս նշելու առանձին կարգավորիչ՝ արմատային թույլտվություններ ստանալու համար (օրինակ՝ կարող եք ընտրել polkit, sudo, opendoas կամ $MESON_ROOT_CMD): «Meson install»-ի ոչ ինտերակտիվ ռեժիմում գործարկելն այլևս չի փորձում բարձրացնել արտոնությունները:
  • Ավելացվել է meson_options.txt-ի փոխարեն meson.options ֆայլից ընտրանքների ընթերցման աջակցություն:
  • Ապահովված է վերահղում դեպի stderr՝ ներդաշնակության առաջընթացի մասին տեղեկատվության ելքի վրա:
  • Ավելացվել է նոր «none» backend (--backend=none)՝ ստեղծելու նախագծեր, որոնք ունեն միայն տեղադրման կանոններ և չունեն կառուցման կանոններ:
  • Նոր կախվածություն pybind11-ն ավելացվել է, որպեսզի կախվածությունը ('pybind11') աշխատի pkg-config-ի և cmake-ի հետ՝ առանց pybind11-config սկրիպտի օգտագործման:
  • «--reconfigure» և «--wipe» տարբերակները (meson setup --reconfigure builddir and meson setup --wipe builddir ) թույլատրվում են դատարկ builddir-ով:
  • meson.add_install_script() ավելացրել է dry_run հիմնաբառի աջակցությունը, որը թույլ է տալիս գործարկել ձեր սեփական տեղադրման սկրիպտները «meson install --dry-run» կանչելիս:

Source: opennet.ru

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