Introduceret frigivelse af en open build-scriptgenerator på tværs af platforme CMag 3.17, der fungerer som et alternativ til Autoværktøjer og bruges i projekter som KDE, LLVM/Clang, MySQL, MariaDB, ReactOS og Blender. CMake-koden er skrevet i C++ og distribueret under BSD-licensen.
CMake er kendt for at levere et simpelt scriptsprog, et middel til at udvide funktionaliteten gennem moduler, et minimalt antal afhængigheder (ingen binding til M4, Perl eller Python), caching-understøttelse, tilstedeværelsen af værktøjer til krydskompilering, understøttelse af generering af build filer til en lang række byggesystemer og compilere, tilstedeværelse ctest og cpack hjælpeprogrammer til at definere test scripts og byggepakker, cmake-gui hjælpeprogram til interaktiv indstilling af build parametre.
En ny assembly script generator baseret på Ninja toolkit er blevet tilføjet - "Ninja Multi-Config", som adskiller sig fra den gamle generator i evnen til at behandle flere assembly konfigurationer på én gang.
I assembly script generatoren til Visual Studio optrådte evnen til at definere kildefiler, der er knyttet til hver konfiguration (per-config-kilder).
Muligheden for at indstille metaparametre for CUDA ("cuda_std_03", "cuda_std_14", etc.) er blevet tilføjet til værktøjerne til indstilling af compiler-parametre (Compile Features).
Tilføjede variabler "CMAKE_CUDA_RUNTIME_LIBRARY" og "CUDA_RUNTIME_LIBRARY" for at vælge typen af runtime-biblioteker ved brug af CUDA.
Tilføjet "FindCUDAToolkit"-modulet for at bestemme CUDA-værktøjssættet tilgængeligt på systemet uden at aktivere CUDA-sproget.
Tilføjet "--debug-find"-kommando til cmake at udlæse yderligere læsbar diagnostik, når der udføres søgeoperationer. Til lignende formål er CMAKE_FIND_DEBUG_MODE-variablen blevet tilføjet.
Tilføjet understøttelse for at søge efter CURL-værktøjer ved hjælp af cmake-genererede konfigurationsfiler "CURLConfig.cmake" til "FindCURL"-modulet. For at deaktivere denne adfærd er CURL_NO_CURL_CMAKE-variablen angivet.
FindPython-modulet har tilføjet muligheden for at søge efter Python-komponenter i virtuelle miljøer, der styres ved hjælp af "conda".
ctest-værktøjet har tilføjet "--no-tests=[error|ignore]" mulighederne for at definere adfærden i tilfælde af ingen test og "--repeat" for at indstille betingelserne for genkøring af tests (indtil bestået, efter timeout).
INTERFACE_LINK_OPTIONS, INTERFACE_LINK_DIRECTORIES og INTERFACE_LINK_DEPENDS buildmålegenskaberne er nu inkluderet blandt de interne afhængigheder af statisk byggede biblioteker.
Når du bruger MinGW-værktøjssættet, er søgningen efter DLL-filer med kommandoen find_library deaktiveret som standard (i stedet er standardforsøget at importere ".dll.a"-biblioteker).
Logikken for at vælge ninja-værktøjet i Ninja-generatoren afhænger nu ikke af navnet på den eksekverbare fil - det første ninja-build, ninja- eller samu-værktøj, der findes i stierne defineret gennem PATH-miljøvariablen, bruges.
Tilføjet en "-E rm"-kommando til cmake, der kan bruges til at fjerne filer og mapper i stedet for de separate kommandoer "-E remove" og "-E remove_directory".