Kutolewa kwa mfumo wa Meson 1.0

Mfumo wa uundaji wa Meson 1.0.0 umetolewa, ambao unatumika kujenga miradi kama vile Seva ya X.Org, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME na GTK. Nambari ya Meson imeandikwa kwa Python na ina leseni chini ya leseni ya Apache 2.0.

Lengo kuu la maendeleo ya Meson ni kutoa kasi ya juu ya mchakato wa mkutano pamoja na urahisi na urahisi wa matumizi. Badala ya kutengeneza matumizi, zana ya zana ya Ninja hutumiwa kwa chaguo-msingi wakati wa kujenga, lakini viunzi vingine vya nyuma kama vile xcode na VisualStudio pia vinaweza kutumika. Mfumo una kidhibiti cha utegemezi cha majukwaa mengi ambacho hukuruhusu kutumia Meson kuunda vifurushi vya usambazaji. Sheria za mkusanyiko zimebainishwa katika lugha iliyorahisishwa mahususi ya kikoa, zinaweza kusomeka na kueleweka kwa mtumiaji (kama ilivyokusudiwa na waandishi, msanidi programu anapaswa kutumia muda mdogo kuandika sheria).

Inasaidia ujumuishaji na ujenzi kwenye Linux, Illumos/Solaris, FreeBSD, NetBSD, DragonFly BSD, Haiku, macOS na Windows kwa kutumia GCC, Clang, Visual Studio na vikusanyaji vingine. Inawezekana kujenga miradi katika lugha mbalimbali za programu, ikiwa ni pamoja na C, C ++, Fortran, Java na Rust. Hali ya ongezeko la ujenzi inatumika, ambapo vipengele pekee vinavyohusiana moja kwa moja na mabadiliko yaliyofanywa tangu muundo wa mwisho hujengwa upya. Meson inaweza kutumika kutengeneza miundo inayoweza kurudiwa, ambayo kuendesha jengo katika mazingira tofauti husababisha kizazi cha faili zinazoweza kutekelezwa zinazofanana kabisa.

Ubunifu kuu wa Meson 1.0:

  • Moduli ya miradi ya ujenzi katika lugha ya Rust imetangazwa kuwa thabiti. Moduli hii inatumika katika mradi wa Mesa kuunda vipengee vilivyoandikwa kwa Rust.
  • Chaguo la kiambishi awali, linalotumika katika vipengele vingi vya ukaguzi wa mkusanyaji, hutoa uwezo wa kushughulikia safu pamoja na mifuatano. Kwa mfano, sasa unaweza kubainisha: cc.check_header(β€˜GL/wglew.h’, kiambishi awali : [β€˜#include ’, β€˜#include ’])
  • Imeongeza hoja mpya "--workdir" ili kuruhusu kubatilisha saraka ya kufanya kazi. Kwa mfano, kutumia saraka ya sasa badala ya saraka ya kufanya kazi, unaweza kukimbia: meson devenv -C builddir --workdir .
  • Waendeshaji wapya "katika" na "si ndani" wamependekezwa ili kubainisha kutokea kwa kamba ndogo katika mfuatano, sawa na hundi iliyokuwapo hapo awali ya kutokea kwa kipengele katika safu au kamusi. Kwa mfano: fs = import('fs') ikiwa 'kitu' katika fs.read('somefile') # endif ya kweli
  • Imeongeza chaguo la "warning-level=everything", ambayo huwasha utoaji wa maonyo yote yanayopatikana ya mkusanyaji (katika clang na MSVC hutumia -Weverything na /Wall, na katika maonyo ya GCC yanajumuishwa kando, takriban sambamba na -Weverything. mode katika clang).
  • Mbinu ya rust.bindgen hutekeleza uwezo wa kushughulikia hoja ya "utegemezi" ili kupitisha njia za utegemezi ambazo zinapaswa kuchakatwa na mkusanyaji.
  • Chaguo za kukokotoa za java.generate_native_headers zimeacha kutumika na kupewa jina jipya java.native_headers ili kuendana na mtindo wa kawaida wa Meson wa kutoa majina.

Chanzo: opennet.ru

Kuongeza maoni