tivo lugar lanzamento dun xerador de scripts de compilación aberta multiplataforma CMake 3.15, que actúa como alternativa a Autotools e úsase en proxectos como KDE, LLVM/Clang, MySQL, MariaDB, ReactOS e Blender. O código CMake está escrito en C++ e distribúese baixo a licenza BSD.
CMake destaca por proporcionar unha linguaxe de scripts sinxela, un medio para estender a funcionalidade a través de módulos, un número mínimo de dependencias (sen vinculación a M4, Perl ou Python), soporte de caché, presenza de ferramentas para a compilación cruzada, soporte para xerar compilación. ficheiros para unha ampla gama de sistemas de compilación e compiladores, a presenza de utilidades ctest e cpack para definir scripts de proba e construír paquetes, a utilidade cmake-gui para establecer de forma interactiva os parámetros de compilación.
Engadiuse a compatibilidade coa linguaxe inicial ao xerador de scripts de compilación baseado en Ninja Rápido, desenvolvido por Apple;
Engadido soporte para unha variante do compilador Clang para Windows que se compila co MSVC ABI, pero usa opcións de liña de comandos ao estilo GNU;
Engadíronse as variables CMAKE_MSVC_RUNTIME_LIBRARY e MSVC_RUNTIME_LIBRARY para seleccionar bibliotecas de tempo de execución utilizadas polos compiladores baseados no MSVC ABI (MS Visual Studio);
Para compiladores como MSVC, CMAKE__FLAGS de xeito predeterminado deixa de listar marcas de control de aviso como "/W3";
Engadiuse unha expresión xeradora "COMPILE_LANG_AND_ID:" para definir as opcións do compilador para os ficheiros de destino, utilizando as variables CMAKE__COMPILER_ID e LANGUAGE para cada ficheiro de código;
Nas expresións xeradoras C_COMPILER_ID, CXX_COMPILER_ID,
CUDA_COMPILER_ID, Fortran_COMPILER_ID, COMPILE_LANGUAGE,
COMPILE_LANG_AND_ID e PLATFORM_ID engadiron compatibilidade para facer coincidir un único valor cunha lista cuxos elementos están separados por coma;
Engadiuse a variable CMAKE_FIND_PACKAGE_PREFER_CONFIG para que chamar a find_package() busque primeiro o ficheiro de configuración do paquete, aínda que estea dispoñible un buscador;
Para as bibliotecas de interfaces, engadiuse soporte para establecer as propiedades PUBLIC_HEADER e PRIVATE_HEADER, mediante as cales se poden establecer cabeceiras mediante o comando install(TARGETS) pasando os argumentos PUBLIC_HEADER e PRIVATE_HEADER;
Engadiuse a variable CMAKE_VS_JUST_MY_CODE_DEBUGGING e a propiedade de destino VS_JUST_MY_CODE_DEBUGGING para habilitar o modo "Só o meu código" no depurador de Visual Studio ao compilar usando MSVC cl 19.05 e versións máis recentes;
Rediseñouse o módulo FindBoost, que agora funciona de forma máis holística nos modos Config e Module en presenza doutros módulos de busca;
O comando message() agora admite os tipos NOTICE, VERBOSE,
DEPURACIÓN e TRAZADO;
O comando "export(PACKAGE)" agora non fai nada a menos que estea activado explícitamente mediante a variable CMAKE_EXPORT_PACKAGE_REGISTRY.