A CMake 3.21 és a Meson 0.59 build rendszerek kiadása

Bemutatjuk a CMake 3.21, többplatformos nyílt felépítésű szkriptgenerátor kiadását, amely az Autotools alternatívájaként működik, és olyan projektekben használatos, mint a KDE, LLVM/Clang, MySQL, MariaDB, ReactOS és Blender. A CMake kód C++ nyelven íródott, és a BSD licenc alatt kerül terjesztésre.

A CMake arról nevezetes, hogy egyszerű szkriptnyelvet biztosít, a funkcionalitás modulokon keresztül történő kibővítését, minimális számú függőséget (nincs kötve M4-hez, Perlhez vagy Pythonhoz), gyorsítótárazási támogatást, keresztfordítási eszközöket, összeállítás generálásának támogatását. fájlok a build rendszerek és fordítók széles skálájához, a jelenléti ctest és cpack segédprogramok tesztszkriptek és csomagok összeállításához, cmake-gui segédprogram az összeállítási paraméterek interaktív beállításához.

Főbb fejlesztések:

  • Teljes támogatás hozzáadva a Heterogeneous-Computing Interface for Portability (HIP) programozási nyelvhez, amely a C++ nyelv dialektusa, amelynek célja a CUDA-alkalmazások hordozható C++ kódokká való konvertálása.
  • Hozzáadott build szkript-generátor a Visual Studio 17 2022-hez, a Visual Studio 2022 előzetes verziója 1.1.
  • A Makefile és a Ninja build szkriptgenerátorok hozzáadták a C_LINKER_LAUNCHER és CXX_LINKER_LAUNCHER tulajdonságokat, amelyek segítségével elindíthatók a linkert elindító segédprogramok, például statikus elemzők. A generátor futtatja a megadott segédprogramokat, átadva nekik a linker nevét és argumentumait.
  • A „C_STANDARD” és „OBJC_STANDARD” tulajdonságokban, valamint a fordítóparaméterek beállítására szolgáló eszközökben (Compile Features) a C17 és C23 specifikációk támogatása került be.
  • A „—toolchain” opció hozzáadásra került a cmake segédprogramhoz > az eszközkészlet elérési útjának meghatározásához.
  • A terminálon megjelenő üzenettípusok kiemelve vannak.
  • Támogatás hozzáadva a Fujitsu fordítóhoz.
  • A "foreach()" parancs biztosítja, hogy a ciklusváltozók izolálva legyenek egy cikluson belül.

Ezenkívül megjegyezhetjük a Meson 0.59 build rendszerének megjelenését, 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. 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 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). 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.59 főbb újításai:

  • Hozzáadott támogatás a Cython nyelvhez (a Python fejlett verziója, amelynek célja a C kóddal való integráció egyszerűsítése).
  • Az "unescaped_variables" és az "unescaped_uninstalled_variables" kulcsszavak hozzáadva a változók meghatározásához a pkgconfig programban anélkül, hogy a "\" karakterrel szóközöket kellene elhagyniuk.
  • Hozzáadott támogatás a wrc-hez (Wine Resource Compiler).
  • Bevezették a Visual Studio 2012 és a Visual Studio 2013 projektek generálásának lehetőségét.
  • Az összes alprojekthez kapcsolódó parancs alapértelmezés szerint párhuzamosan futtatja az egyes alprojekteket. A párhuzamos folyamatok számát a „--num-processes” paraméter határozza meg.

Forrás: opennet.ru

Hozzászólás