CMake 3.21, en platformuafhængig open source build script generator, der fungerer som et alternativ til Autotools, er blevet præsenteret. Den anvendes i projekter som KDE, LLVM/Clang, MySQL, MariaDB, ReactOS og Blender. CMake-koden er skrevet i C++ og distribueres under BSD-licensen.
CMake er bemærkelsesværdigt for at tilbyde et simpelt script-sprog, udvidelsesmuligheder gennem moduler, et minimum af afhængigheder (ingen binding til M4, Perl eller Python), support for caching, tilgængelighed af værktøjer til tværkompilering, samt generering af build-filer for en bred vifte af build-systemer og compiler, plus værktøjerne ctest og cpack til test-script og pakkeopbygning, samt cmake-gui til interaktiv konfiguration af byggeparametre.
Hovedforbedringer:
- Der er tilføjet fuld støtte til programmeringssproget HIP (Heterogeneous-Computing Interface for Portability), en dialekt af C++ designet til at forenkle konverteringen af CUDA-applikationer til bærbar C++-kode.
- Der er tilføjet en build script generator til Visual Studio 17 2022, som er baseret på den tidlige version af Visual Studio 2022 Preview 1.1.
- I Makefile- og Ninja build script generatorer er der tilføjet egenskaberne C_LINKER_LAUNCHER og CXX_LINKER_LAUNCHER, der gør det muligt at køre hjælpeprogrammer, der anvender linker, som f.eks. statiske analyseværktøjer. Generatoren vil starte de angivne værktøjer og videregive linkernavnet og dets argumenter.
- Der er tilføjet support for C17 og C23 specifikationer i egenskaberne 'C_STANDARD' og 'OBJC_STANDARD', samt i værktøjer til indstilling af kompilatorindstillinger (Compile Features).
- CMake-kommandoen har fået tilføjet muligheden '--toolchain ' til at angive stien til værktøjsættet.
- Der er tilføjet farvekodning af de typer beskeder, der udskrives til terminalen.
- Der er tilføjet support for Fujitsu-kompilatoren.
- I 'foreach()' kommandoen er der sikret isolering af loop-variabler inden for loops.
Det skal også nævnes, at build-systemet Meson 0.59 er blevet udgivet, som anvendes til at bygge projekter som X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME og GTK. Koden til Meson er skrevet i Python og leveres under Apache 2.0-licensen. Der understøttes kryds-kompilation og bygning på Linux, Illumos/Solaris, FreeBSD, NetBSD, DragonFly BSD, Haiku, macOS og Windows med brug af GCC, Clang, Visual Studio og andre kompilatorer. Projekter kan bygges på forskellige programmeringssprog, herunder C, C++, Fortran, Java og Rust. Ved bygning anvendes standardværktøjet Ninja i stedet for make, men andre backend-værktøjer kan også anvendes såsom xcode og VisualStudio.
Systemet har en tværplatform afhængighedshåndterer, der gør det muligt at bruge Meson til at bygge pakker til distributioner. Bygningsreglerne angives på et forenklet domæneorienteret sprog, hvilket sikrer god læsbarhed og forståelse for brugeren (forfatterne har til hensigt, at udvikleren skal bruge minimal tid på at skrive regler). Inkrementel bygning understøttes, hvilket betyder, at kun de komponenter, der direkte er relateret til ændringer foretaget siden sidste bygning, genbygges. Meson kan bruges til at generere gentagelige bygninger, hvor bygningen i forskellige miljøer resulterer i fuldstændig identiske eksekverbare filer.
De vigtigste nyheder i Meson 0.59:
- Support for Cython-sproget (en udvidet version af Python, der sigter mod at forenkle integrationen med C-kode) er blevet tilføjet.
- Nøgleordene «unescaped_variables» og «unescaped_uninstalled_variables» er blevet tilføjet for at definere variabler i pkgconfig uden at escaper mellemrum med "\".
- Understøttelse af wrc (Wine Resource Compiler) er tilføjet.
- Muligheden for at generere projekter til Visual Studio 2012 og Visual Studio 2013 er blevet implementeret.
- Alle kommandoer relateret til behandling af underprojekter kører nu som standard hvert underprojekt parallelt. Antallet af parallelt kørende processer bestemmes af parameteren «—num-processes».
Kilde: opennet.ru
