Megjelent a Meson 0.58 build rendszer, amelyet olyan projektek készítésére használnak, mint az X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME és GTK. A Meson kódja Python nyelven íródott, és az Apache 2.0 licenc alatt van.
A Meson fejlesztésének fő célja az összeszerelési folyamat nagy sebessége, a kényelem és a könnyű kezelhetőség kombinációja. A make segédprogram helyett alapértelmezés szerint a Ninja eszközkészletet használják az építés során, de más háttérprogramok, például az xcode és a VisualStudio is használhatók. A rendszer beépített többplatformos függőségi kezelővel rendelkezik, amely lehetővé teszi, hogy a Meson segítségével csomagokat készítsen disztribúciókhoz. Az összeállítási szabályok egyszerűsített, tartományspecifikus nyelven vannak megadva, jól olvashatóak és érthetőek a felhasználó számára (a szerzők szándéka szerint a fejlesztőnek minimális időt kell töltenie a szabályok megírásával).
Támogatja a keresztfordítást és az építkezést Linuxon, Illumos/Solarison, FreeBSD-n, NetBSD-n, DragonFly BSD-n, Haiku-n, macOS-en és Windowson a GCC, Clang, Visual Studio és más fordítók segítségével. Lehetőség van projektek készítésére különféle programozási nyelveken, köztük C, C++, Fortran, Java és Rust. A növekményes felépítési mód támogatott, amelyben csak az utolsó build óta végrehajtott változtatásokhoz közvetlenül kapcsolódó összetevők épülnek újra. A Meson segítségével megismételhető buildek generálhatók, amelyekben a build különböző környezetekben történő futtatása teljesen azonos futtatható fájlok generálását eredményezi.
A Meson 0.58 főbb újításai:
- A Meson beépített karakterlánc-formázási műveletekkel rendelkezik. A formázási metódus meghívása helyett most már közvetlenül is helyettesítheti az értékeket, például a „@0@ formázandó @1@ karakterlánc”.format(n, m)” helyett azonnal megadhatja az „f”-t. Egy @n@ karakterlánc @ m@'".
- Egy "csere" metódus került hozzáadásra a karakterlánc-objektumokhoz, hogy végrehajtsa az egyik részkarakterlánc másikkal való helyettesítését, például "s = s.replace('aaa', 'bbb')".
- Hozzáadott "tartomány(kezdet, leállítás[, lépés])" függvény egy foreach ciklusban használható objektum visszaadásához, például "foreach i : range(15)".
- Megvalósult a meson.add_devenv() metódus, amely lehetővé teszi egy Environment() objektum hozzáadását a környezeti változók beállításához, amikor a "meson devenv" parancsot használja, például egy környezeti változó beállításához a plugins könyvtár elérési útjával.
- Fejlesztői környezetekhez egy új parancsot javasoltak: „meson devenv -C builddir [<parancs>], amely lehetővé teszi a parancs futtatását olyan környezetben, amely úgy van beállítva, hogy projekteket indítson a build könyvtárból (telepítés nélkül).
- Alapértelmezés szerint a "-pipe" opció átadása leáll az összes támogatott fordító futtatásakor.
- A meson.add_dist_script() meghívása alprojektekből megengedett.
- Lehetővé teszi az append() és prepend() metódusok többszöri futtatását ugyanazon a Environment() objektumon.
- Az error() függvény egynél több argumentumot engedélyez, szóközzel elválasztva (hasonlóan a warning()-hoz és a message()-hez).
- A "--skip-subprojects" opció hozzáadva az alprojektek telepítésének szelektív kihagyásához.
Külön megemlíthetjük a Boson projektet, amelynek célja a Meson összeállítási szkriptnyelv hordozható és egyszerű megvalósítása, amely Python helyett C nyelven íródott. A projekt még a fejlesztés kezdeti szakaszában van, és még nem áll készen a működő projektek teljes összeállítására. A kód a GPLv3 licenc alatt van (az eredeti Python Meson licence az Apache 2.0 licenc alatt van).
Forrás: opennet.ru