Liberigo de konstrusistemoj CMake 3.21 kaj Meson 0.59

Prezentita estas la liberigo de la transplatforma malferma konstrua skriptogeneratoro CMake 3.21, kiu funkcias kiel alternativo al Autotools kaj estas uzata en projektoj kiel KDE, LLVM/Clang, MySQL, MariaDB, ReactOS kaj Blender. La CMake-kodo estas skribita en C++ kaj distribuita sub la BSD-licenco.

CMake estas rimarkinda pro disponigado de simpla skriptlingvo, rimedo por etendi funkciecon per moduloj, minimuma nombro da dependecoj (neniu ligado al M4, Perl aŭ Python), kaŝmemorsubteno, la ĉeesto de iloj por kruc-kompilo, subteno por generado de konstruo. dosieroj por ampleksa gamo de konstrusistemoj kaj kompililoj, la ĉeesto ctest kaj cpack-utiloj por difini testajn skriptojn kaj konstrui pakaĵojn, cmake-gui-utilo por interage agordi konstruajn parametrojn.

Ĉefaj plibonigoj:

  • Aldonita plena subteno por la Heterogeneous-Computing Interface for Portability (HIP) programlingvo, dialekto de la C++-lingvo celita faciligi konverti CUDA-aplikaĵojn al portebla C++-kodo.
  • Aldonita konstrua skriptogeneratoro por Visual Studio 17 2022, bazita sur Visual Studio 2022 Antaŭrigardo 1.1.
  • La Makefile kaj Ninja build script generatoroj aldonis la C_LINKER_LAUNCHER kaj CXX_LINKER_LAUNCHER ecojn, kiuj povas esti uzataj por lanĉi helpajn ilojn kiuj lanĉas la ligilon, kiel senmovaj analiziloj. La generatoro funkcios la specifitajn utilecojn, pasigante al ili la nomon de la ligilo kaj ĝiaj argumentoj.
  • En la propraĵoj "C_STANDARD" kaj "OBJC_STANDARD", same kiel en la iloj por agordi kompililajn parametrojn (Kompilaj Trajtoj), subteno por la specifoj C17 kaj C23 estis aldonita.
  • La opcio "—iloĉeno" estis aldonita al la ilo cmake > por determini la vojon al la ilaro.
  • La specoj de mesaĝoj montrataj sur la terminalo estas emfazitaj.
  • Aldonita subteno por la Fujitsu-kompililo.
  • La komando "foreach()" certigas, ke cirklaj variabloj estas izolitaj ene de buklo.

Aldone, ni povas noti la liberigon de la konstrusistemo Meson 0.59, kiu estas uzata por konstrui projektojn kiel X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME kaj GTK. La kodo de Meson estas skribita en Python kaj estas licencita sub la licenco Apache 2.0. Elportas transkompilon kaj konstruadon sur Linukso, Illumos/Solaris, FreeBSD, NetBSD, DragonFly BSD, Haiku, macOS kaj Vindozo uzante GCC, Clang, Visual Studio kaj aliajn kompililojn. Eblas konstrui projektojn en diversaj programlingvoj, inkluzive de C, C++, Fortran, Java kaj Rust. Anstataŭ la make-utilo, la Ninja ilaro estas uzata defaŭlte dum konstruado, sed aliaj backends kiel xcode kaj VisualStudio ankaŭ povas esti uzataj.

La sistemo havas enkonstruitan plurplatforman dependectraktilon, kiu permesas vin uzi Meson por konstrui pakaĵojn por distribuoj. Asembleaj reguloj estas specifitaj en simpligita domajna-specifa lingvo, estas tre legeblaj kaj kompreneblaj por la uzanto (kiel celite de la aŭtoroj, la programisto devus pasigi minimumon da tempo skribante regulojn). Pliiga konstrureĝimo estas subtenata, en kiu nur komponentoj rekte rilataj al ŝanĝoj faritaj ekde la lasta konstruo estas rekonstruitaj. Meson povas esti uzata por generi ripeteblajn konstruojn, en kiuj ruli la konstruon en malsamaj medioj rezultigas la generacion de tute identaj ruleblaj dosieroj.

Ĉefaj inventoj de Meson 0.59:

  • Aldonita subteno por la Cython-lingvo (altnivela versio de Python celanta simpligi integriĝon kun C-kodo).
  • Aldonitaj ŝlosilvortoj "unescaped_variables" kaj "unescaped_uninstalled_variables" por difini variablojn en pkgconfig sen eskapi spacojn kun la signo "\".
  • Aldonita subteno por wrc (Wine Resource Compiler).
  • La kapablo generi projektojn por Visual Studio 2012 kaj Visual Studio 2013 estis efektivigita.
  • Ĉiuj subprojekt-rilataj komandoj nun rulas ĉiun subprojekton paralele defaŭlte. La nombro da paralelaj procezoj estas determinita de la parametro "--num-processes".

fonto: opennet.ru

Aldoni komenton