Meson build համակարգի թողարկում 0.58: C լեզվով Meson-ի իրականացում ստեղծելու նախագիծ

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

  • Meson լեզուն ունի ներկառուցված տողերի ձևաչափման գործողություններ: Ֆորմատի մեթոդը կանչելու փոխարեն, այժմ կարող եք ուղղակիորեն փոխարինել արժեքները, օրինակ՝ «'A string @0@ to formatted @1@'.format(n, m)»-ի փոխարեն կարող եք անմիջապես նշել «f» @n@ տող, որը պետք է ձևաչափվի @ m@'»:
  • «Փոխարինել» մեթոդն ավելացվել է լարային օբյեկտներին՝ մի ենթատողը մյուսով փոխարինելու գործողությունը կատարելու համար, օրինակ՝ «s = s.replace('aaa', 'bbb')":
  • Ավելացվեց «range(start, stop[, step])» ֆունկցիան՝ վերադարձնելու օբյեկտ, որը կարող է օգտագործվել «foreach» հանգույցում, օրինակ՝ «foreach i: range(15)»:
  • Իրականացվել է meson.add_devenv() մեթոդը, որը թույլ է տալիս ավելացնել միջավայր() օբյեկտ՝ շրջակա միջավայրի փոփոխականները սահմանելու համար՝ միաժամանակ օգտագործելով «meson devenv» հրամանը, օրինակ՝ պլագինների գրացուցակի ուղով շրջակա միջավայրի փոփոխական սահմանելու համար:
  • Զարգացման միջավայրերի համար առաջարկվում է նոր հրաման «meson devenv -C builddir [<command>]», որը հնարավորություն է տալիս հրամանը գործարկել այնպիսի միջավայրում, որը կազմաձևված է նախագծերը build գրացուցակից գործարկելու համար (առանց տեղադրման):
  • Լռելյայնորեն, ոչ մի «-pipe» տարբերակ չի փոխանցվում բոլոր աջակցվող կոմպիլյատորները սկսելիս:
  • Թույլատրել meson.add_dist_script()-ին կանչել ենթանախագծերից:
  • Ապահովում է append() և prepend() մեթոդները մի քանի անգամ գործարկելու նույն միջավայր() օբյեկտի վրա:
  • error() ֆունկցիայի մեջ թույլատրվում է մեկից ավելի տարածություն առանձնացված արգումենտ (նման է warning()-ին և message()-ին):
  • Ավելացվեց «--skip-subprojects» տարբերակը՝ ընտրովի բաց թողնելու ենթանախագծերի տեղադրումը:

Հատկանշական է Boson նախագիծը, որի նպատակն է ստեղծել Meson assembly script լեզվի շարժական և պարզ իրականացում, որը գրված է C-ով Python-ի փոխարեն: Նախագիծը դեռ մշակման սկզբնական փուլում է և դեռ պատրաստ չէ աշխատանքային նախագծերի ամբողջական հավաքմանը։ Կոդը տարածվում է GPLv3 լիցենզիայի ներքո (բնօրինակ Python Meson-ը գալիս է Apache 2.0 լիցենզիայի ներքո):

Source: opennet.ru

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