Presentat llançament d'un generador d'scripts de compilació oberta multiplataforma CMake 3.17, que actua com una alternativa a Autotools i s'utilitza en projectes com KDE, LLVM/Clang, MySQL, MariaDB, ReactOS i Blender. El codi CMake està escrit en C++ i distribuït sota la llicència BSD.
CMake destaca per proporcionar un llenguatge de script senzill, un mitjà per estendre la funcionalitat a través de mòduls, un nombre mínim de dependències (sense vinculació a M4, Perl o Python), suport de memòria cau, presència d'eines per a la compilació creuada, suport per generar compilació. fitxers per a una àmplia gamma de sistemes de compilació i compiladors, les utilitats ctest i cpack de presència per definir scripts de prova i crear paquets, utilitat cmake-gui per establir de manera interactiva els paràmetres de compilació.
S'ha afegit un nou generador d'scripts de muntatge basat en el conjunt d'eines Ninja: "Ninja Multi-Config", que es diferencia de l'antic generador en la capacitat de processar diverses configuracions de muntatge alhora.
Al generador d'scripts de muntatge per a Visual Studio va aparèixer la capacitat de definir fitxers font associats a cada configuració (fonts per configuració).
S'ha afegit la possibilitat d'establir metaparàmetres per a CUDA ("cuda_std_03", "cuda_std_14", etc.) a les eines per configurar els paràmetres del compilador (Compile Features).
S'han afegit les variables "CMAKE_CUDA_RUNTIME_LIBRARY" i "CUDA_RUNTIME_LIBRARY" per seleccionar el tipus de biblioteques en temps d'execució quan s'utilitza CUDA.
S'ha afegit el mòdul "FindCUDAToolkit" per determinar el conjunt d'eines CUDA disponible al sistema sense habilitar l'idioma CUDA.
S'ha afegit l'ordre "--debug-find" a cmake per generar diagnòstics llegibles addicionals quan es realitzen operacions de cerca. Amb finalitats similars, s'ha afegit la variable CMAKE_FIND_DEBUG_MODE.
S'ha afegit suport per a la cerca d'eines CURL mitjançant fitxers de configuració generats per cmake "CURLConfig.cmake" al mòdul "FindCURL". Per desactivar aquest comportament, es proporciona la variable CURL_NO_CURL_CMAKE.
El mòdul FindPython ha afegit la possibilitat de cercar components de Python en entorns virtuals gestionats amb "conda".
La utilitat ctest ha afegit les opcions "--no-tests=[error|ignore]" per definir el comportament en cas de no provar i "--repeat" per establir les condicions per tornar a executar les proves (fins a passar, després del temps mort).
Les propietats de destinació de muntatge INTERFACE_LINK_OPTIONS, INTERFACE_LINK_DIRECTORIES i INTERFACE_LINK_DEPENDS ara es transfereixen entre les dependències internes de les biblioteques muntades estàticament.
Quan s'utilitza el conjunt d'eines MinGW, la cerca de fitxers DLL amb l'ordre find_library està desactivada de manera predeterminada (en canvi, l'intent predeterminat és importar biblioteques ".dll.a").
La lògica per seleccionar la utilitat ninja al generador Ninja ara no depèn del nom del fitxer executable: s'utilitza la primera utilitat ninja-build, ninja o samu que es troba als camins definits a través de la variable d'entorn PATH.
S'ha afegit una ordre "-E rm" a cmake que es pot utilitzar per eliminar fitxers i directoris en lloc de les ordres separades "-E remove" i "-E remove_directory".