ĂshtĂ« publikuar versione i sistemit tĂ« ndĂ«rtimit Meson 1.11.0, i cili pĂ«rdoret pĂ«r ndĂ«rtimin e projekteve si X.Org Server, Mesa, QEMU, Lighttpd, systemd, GStreamer, Wayland, GNOME dhe GTK. Kodi i Meson Ă«shtĂ« shkruar nĂ« Python dhe ofrohet nĂ«n licencĂ«n Apache 2.0.
Qëllimi kryesor i zhvillimit të Meson është të sigurojë një shpejtësi të lartë të procesit të ndërtimit, së bashku me lehtësinë dhe thjeshtësinë e përdorimit. Në vend të utilitarit make, për ndërtimin e parazgjedhur përdoret mjeti Ninja, por është e mundur të përdoren edhe backend të tjerë, si Xcode dhe Visual Studio. Sistemi përmban një menaxher shumëplatformor të varësive, i cili lejon përdorimin e Meson për ndërtimin e pakove për distribuime. Rregullat e ndërtimit përcaktohen në një gjuhë të thjeshtë të orientuar nga subjekti, e cila karakterizohet nga lexueshmëri e lartë dhe është e kuptueshme për përdoruesin (sipërmarrësit e autorëve pretendojnë se zhvilluesi duhet të kalojë sa më pak kohë në shkruan rregullat).
Përkrahet ndërtimi i kryqëzuar dhe ndërtimi në Linux, Illumos/Solaris, FreeBSD, NetBSD, DragonFly BSD, Haiku, macOS dhe Windows duke përdorur GCC, Clang, Visual Studio dhe kompilatorë të tjerë. E mundshme ndërtimi i projekteve në gjuhë të ndryshme programuese, duke përfshirë C, C++, Fortran, Java, D dhe Rust. Mbështetet modaliteti i ndërtimit inkremental, ku ripërtërihen vetëm komponentët që janë lidhur drejtpërdrejt me ndryshimet e bëra që nga ndërtimi i kaluar. Meson mund të përdoret për të formuar ndërtime të përsëritshme, ku nisja e ndërtimit në mjedise të ndryshme çon në gjenerimin e skedarëve ekzekutivë që janë plotësisht identikë.
Novitetet kryesore të Meson 1.11:
- Kur thirret në skriptet e Meson metodën rust.workspace(), realizohet analizimi i skedarit të rrënjës Cargo.toml brenda projektit, për aktivizimin e saktë gjatë ndërtimit të flag-ve të veçorive, të përcaktuara në skedarin e përbashkët për të gjitha hapësirat e punës Cargo.toml. Për më tepër, metoda rust.workspace() tani kthen një objekt, përmes të cilit mund të merrni një listë të flag-ve të veçorive dhe varësive për projektet nën, si dhe të nisni ndërtimin e objektivave të shpallura në skedarët Cargo.toml.
- NĂ« komandĂ«n «meson dist» janĂ« shtuar opsioni «-j» (ânum-processes) dhe variabla e ambientit MESON_NUM_PROCESSES pĂ«r tĂ« caktuar numrin e proceseve qĂ« ekzekutohen paralelisht gjatĂ« ndĂ«rtimit dhe testimit tĂ« pakove.
- Parametri should_fail, i cili lejon kalimin e testit nĂ«se kthehet njĂ« gabim, Ă«shtĂ« shpallur i tejkaluar dhe Ă«shtĂ« riemĂ«ruar nĂ« expected_fail. ĂshtĂ« shtuar parametri expected_exitcode pĂ«r tĂ« caktuar kodin e pĂ«rfundimit tĂ« suksesshĂ«m tĂ« testit, ndryshe nga 0.
- Në modulën external_project në platformën Windows është përdorur komanda cygpath për të transformuar rrugët e skedarëve specifike për Windows në rrugë të ngjashme me ato të Unix (p.sh., nga C:/path/to/configure në /path/to/configure).
- Ekipave install_man dhe install_headers iu shtua mbështetje për argumentin install_tag për të zgjedhur skedarët për t'u instaluar sipas etiketave të zakonshme, dhe jo vetëm sipas etiketave man dhe devel.
- I është shtuar parameteri link_early_args, me të cilin mund të shtoni opsione (për shembull, "-u" ose "--defsym") në komandën gjatë startimit të lidhësit para enumerimit të objekteve dhe bibliotekave.
- I është shtuar konstantja "~", e cila zëvendësohet me katalogun e shtëpisë në skedarët përshkrues të mjedisit (skedarët machine).
- Në komandën "meson format" për default është çaktivizuar renditja e skedarëve të caktuar në numrin e argumenteve të funksionit files(). Për të aktivizuar renditjen, duhet të përdorni opsionin sort_files.
- ĂshtĂ« njoftuar se do tĂ« ndĂ«rpritet mbĂ«shtetja pĂ«r versionet e Python deri nĂ« lĂ«shimin e 3.10. Meson 1.11.0 Ă«shtĂ« lĂ«shimi i fundit me mbĂ«shtetje pĂ«r degĂ«t Python 3.7, 3.8 dhe 3.9.
- I është shtuar mbështetje për mundësi të reja të kompilerit C/C++ MPLAB XC32, që u shfaqën në versionin 5.0, si për shembull aktivizimi automatik i optimizimeve LTO dhe mbështetje për standardet C2x dhe CPP23.
Burimi: opennet.ru
