Den krydsplatformede åbne build system generator CMake 3.22 er blevet præsenteret som et alternativ til Autotools og anvendes i projekter som KDE, LLVM/Clang, MySQL, MariaDB, ReactOS og Blender. Koden til CMake 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:
- I compiler options (Compile Features) er der mulighed for at aktivere og deaktivere compiler-udvidelser uden at angive standard supportniveau, samt at undgå at indstille unødvendige flags med standardsprog niveau, hvis de valgte indstillinger falder ind under de standardindstillinger, der er angivet af compileren.
- I cmake_host_system_information() kommandoen er der tilføjet mulighed for at anmode om identifikatoren for operativsystemet, som er gemt i filen /etc/os-release.
- Der er tilføjet miljøvariablerne CMAKE_BUILD_TYPE og CMAKE_CONFIGURATION_TYPES, hvor man kan sætte standardværdien af de navngivne CMake-variabler.
- Der er tilføjet en variabel ‘CMAKE_REQUIRE_FIND_PACKAGE_’ der gør find_package() funktionskald til en obligatorisk operation for at finde den angivne pakke.
- Der er tilføjet en miljøvariabel ‘CMAKE_INSTALL_MODE’ for at indstille symboliske links i stedet for at kopiere filer under kaldet ‘install()’.
- Flaget ‘CMAKE__LINK_WHAT_YOU_USE_FLAG’ og variablen ‘CMAKE_LINK_WHAT_YOU_USE_CHECK’ er blevet tilføjet for at indstille og kontrollere linker-flag.
- I FetchContent modulet er der sikret, at de indstillede variabler ‘CMAKE_TLS_VERIFY’, ‘CMAKE_TLS_CAINFO’, ‘CMAKE_NETRC’ og ‘CMAKE_NETRC_FILE’ bliver sendt til build scriptet for eksterne projekter (tidligere blev disse parametre ignoreret).
- I den leverede ‘CMakeDependentOption’ modul er der tilføjet fuld understøttelse af syntaksen for betingede udtryk i makroen ‘cmake_dependent_option()’.
- Modulerne ‘FindJasper’ og ‘FindMatlab’ tilbyder nu importerede mål.
- I ‘VS_SETTINGS’ egenskaben er der opnået støtte til alle typer af kildefiler.
- Generatoren ‘Visual Studio 10 2010’ er blevet erklæret forældet og vil blive fjernet i en af de kommende udgivelser.
Kilde: opennet.ru
