Took place release of a cross-platform open source build script generator CMake 3.15, which acts as an alternative to Autotools and is used in projects such as KDE, LLVM/Clang, MySQL, MariaDB, ReactOS, and Blender. The CMake code is written in C++ and distributed under the BSD license.
CMake is notable for providing a simple scripting language, means of extending functionality through modules, a minimum number of dependencies (no binding to M4, Perl or Python), caching support, cross-compilation tools, support for generating build files for a wide range of build systems and compilers, the presence ctest and cpack utilities to define test scripts and package builds, cmake-gui utility to interactively configure build options.
Initial language support added to Ninja toolkit-based build script generator Swiftdeveloped by Apple;
Added support for a variant of the Clang compiler for Windows that builds against the MSVC ABI but uses GNU-style command-line options;
Added CMAKE_MSVC_RUNTIME_LIBRARY and MSVC_RUNTIME_LIBRARY variables to select runtime libraries used by compilers based on ABI MSVC (MS Visual Studio);
For compilers like MSVC, CMAKE_FLAGS no longer enumerates warning output control flags such as "/W3" by default;
Added generator expression "COMPILE_LANG_AND_ID:" to define compiler options for target files using CMAKE_COMPILER_ID and LANGUAGE variables for each code file;
In generator expressions C_COMPILER_ID, CXX_COMPILER_ID,
CUDA_COMPILER_ID, Fortran_COMPILER_ID, COMPILE_LANGUAGE,
COMPILE_LANG_AND_ID and PLATFORM_ID added support for matching one value with a list, the elements in which are separated by commas;
Added CMAKE_FIND_PACKAGE_PREFER_CONFIG variable so that find_package() call will look for the package configuration file first, even if a find module is available;
Added support for setting the PUBLIC_HEADER and PRIVATE_HEADER properties for interface libraries, which can set headers using the install(TARGETS) command by passing the PUBLIC_HEADER and PRIVATE_HEADER arguments;
Added CMAKE_VS_JUST_MY_CODE_DEBUGGING variable and VS_JUST_MY_CODE_DEBUGGING target property to enable "Just My Code" mode in the Visual Studio debugger when compiling with MSVC cl 19.05 and newer;
The FindBoost module has been redesigned, which now works more holistically in Config and Module modes in the presence of other search modules;
Support for the NOTICE, VERBOSE types has been added to the message() command,
DEBUG and TRACE
The "export(PACKAGE)" command now does nothing unless explicitly enabled via the CMAKE_EXPORT_PACKAGE_REGISTRY variable.