Avaldati Meson 1.4.0 ehitussüsteemi versioon, mida kasutatakse selliste projektide nagu X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME ja GTK kokkupanekuks. Meson'i kood on kirjutatud Pythonis ja see on litsentseeritud Apache 2.0 alusel.
Mesoni arengu peamine eesmärk on tagada kiire kogumise protsess koos mugavuse ja lihtsusega. Vaikimisi kasutatakse kogumise jaoks make'i asemel Ninja tööriistu, kuid on võimalik kasutada ka muid tagaplaneeringuid, nagu xcode ja VisualStudio. Süsteemis on integreeritud mitme platvormi sõltuvuste haldur, mis võimaldab Mesonit kasutada distributsioonide paketide koostamiseks. Koostamisreeglid on määratud lihtsustatud ainealases keeles, mis on hea loetavusega ja arusaadav kasutajale (autoritelt on kavandatud, et arendaja peaks reeglite kirjutamiseks võimalikult vähe aega kulutama).
Toetatakse ristkompileerimist ja ehitamist Linuxis, Illumos/Solaris, FreeBSD, NetBSD, DragonFly BSD, Haiku, macOS ja Windowsis, kasutades GCC, Clang, Visual Studio ja teisi kompilaatoreid. Erinevate programmeerimiskeelte, sealhulgas C, C++, Fortran, Java ja Rust projektide ehitamine on võimalik. Toetatakse inkrementaalset ehitusrežiimi, kus uuesti ehitatakse ainult need komponendid, mis on otseselt seotud muudatustega, mis on tehtud alates eelmisest ehitusest. Mesonit saab kasutada reprodutseeritavate ehituste loomiseks, kus ehituse käivitamine erinevates keskkondades toob kaasa täielikult identsete käivitatavate failide genereerimise.
Meson 1.4 peamised uuendused:
- FS moodulisse on lisatud funktsioonide fs.name, fs.parent, fs.replace_suffix ja fs.stem toetus ehitusobjektidele build_tgt ja custom_tgt ning ka ehitusobjektide indekseerimine (custom_idx).
- Lisatud on võimalus lugeda projekti versioonialuseid CMake'i aluspõhjade kaudu.
- Antud võimalus kontrollida C++ stdlib assert-kontrolle (GLIBCXX_ASSERTIONS) läbi seadistuse ndebug.
- stldebugi on lisatud Clangi tugi (kui debugstl on lubatud, määratakse nüüd «-D_GLIBCXX_DEBUG=1» ja «-D_LIBCPP_HARDENING_MODE=_LIBCPP_HARDENING_MODE_DEBUG»).
- Objektile env on lisatud meetod unset().
- Faili objektile on lisatud meetod full_path(), et saada faili täisteed.
- Lisatud on toetus oma sõltuvuste määramiseks numpy jaoks (dependency(‘numpy’)).
- meetodisse compiler.preprocess() on lisatud parameeter «depends», mis võimaldab määrata sõltuva ehitusobjekti compiler.preprocess() jaoks.
- Funktsioonides compile_ui, compile_moc ja preprocess qt4, qt5 ja qt6 moodulites on lisatud argument preserve_paths, et valida, kuidas struktuuri kataloogid kirjutatavate failide jaoks üles ehitada (kui väärtus on true — «{target private directory}/subdir/one.out», ja kui false — «{target private directory}/one.out»).
- Bindgeni sidumisgeneraatoris on tagatud Mesoni heuristika kasutamine C++ pealkirjafailide määramiseks.
- Lisatud on võimalus üle kirjutada bindgeni keele seadistused (nt .h laiendiga faile C++ pealkirjafailidena töödelda).
- Testide täitmine lõpeb nüüd vaikimisi pärast vigu, mis tuvastatakse sanitaatorite, nagu MemorySanitizer, käivitamisel.
- Lisatud on Texas Instruments'i C/C++ kompilatori tugi C6000 protsessori perekonnale.
Allikas: opennet.ru
