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

Հրապարակվել է Meson 1.0.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.0-ի հիմնական նորամուծությունները.

  • Rust լեզվով նախագծեր կառուցելու մոդուլը հայտարարվել է կայուն: Այս մոդուլն օգտագործվում է Mesa նախագծում՝ Rust-ով գրված բաղադրիչներ ստեղծելու համար:
  • Նախածանցի տարբերակը, որն աջակցվում է կոմպիլյատորների ստուգման գործառույթների մեծ մասում, ապահովում է տողերից բացի զանգվածներ մշակելու հնարավորություն: Օրինակ, այժմ կարող եք նշել՝ cc.check_header('GL/wglew.h', նախածանց՝ ['#include ', '#ներառում '])
  • Ավելացվեց նոր արգումենտ «--workdir»՝ աշխատանքային գրացուցակը վերացնելու համար: Օրինակ՝ աշխատանքային գրացուցակի փոխարեն ընթացիկ գրացուցակը օգտագործելու համար կարող եք գործարկել՝ meson devenv -C builddir --workdir ։
  • Առաջարկվել են նոր «in» և «not in» օպերատորներ՝ տողի մեջ ենթալարի հայտնվելը որոշելու համար, ինչպես նախկինում հասանելի ստուգումը զանգվածում կամ բառարանում տարրի հայտնվելու համար: Օրինակ՝ fs = import('fs') if 'something' fs.read('somefile') # True endif
  • Ավելացվեց «նախազգուշացում-մակարդակ=ամեն ինչ» տարբերակը, որը միացնում է բոլոր հասանելի կոմպիլյատորների նախազգուշացումների արդյունքը (clang-ում և MSVC-ում այն ​​օգտագործում է - Weverything և /Wall, իսկ GCC-ում նախազգուշացումները ներառված են առանձին՝ մոտավորապես համապատասխանելով -Weverything-ին: ռեժիմ զրնգում):
  • Rust.bindgen մեթոդը կիրառում է «կախվածություններ» արգումենտը կարգավորելու ունակությունը՝ դեպի կախվածության ուղիներ անցնելու համար, որոնք պետք է մշակվեն կոմպիլյատորի կողմից:
  • java.generate_native_headers ֆունկցիան հնացել է և վերանվանվել է java.native_headers՝ Մեսոնի ընդհանուր ֆունկցիաների անվանման ոճին համապատասխանելու համար:

Source: opennet.ru

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