the release of the cross-platform open source build script generator , serving as an alternative to Autotools and used in projects like KDE, LLVM/Clang, MySQL, MariaDB, ReactOS, and Blender. CMake code is written in C++ and distributed under the BSD license.
CMake is notable for providing a simple scripting language, functionality extension through modules, minimal dependencies (no coupling with M4, Perl, or Python), caching support, tools for cross-compilation, support for generating build files for a wide range of build systems and compilers, as well as ctest and cpack utilities for defining test scripts and package builds, and a cmake-gui utility for interactive building parameter configuration.
Key :
- Initial support for the language has been added to the build script generator based on the Ninja toolkit. , developed by Apple;
- Support has been added for a Clang compiler variant for Windows, which builds with the MSVC ABI but uses GNU-style command line options;
- The CMAKE_MSVC_RUNTIME_LIBRARY and MSVC_RUNTIME_LIBRARY variables have been added to select the runtime libraries used by MSVC-based compilers (MS Visual Studio);
- For compilers like MSVC, the default CMAKE__FLAGS no longer contains enumerations for controlling warning output flags such as '/W3';
- The generator expression 'COMPILE_LANG_AND_ID:' has been added to determine compiler options for target files that apply the CMAKE__COMPILER_ID and LANGUAGE variables for each code file;
- Support for matching a single value with a list, where elements are separated by commas, has been added to the generator expressions C_COMPILER_ID, CXX_COMPILER_ID,
CUDA_COMPILER_ID, Fortran_COMPILER_ID, COMPILE_LANGUAGE,
COMPILE_LANG_AND_ID, and PLATFORM_ID; - The CMAKE_FIND_PACKAGE_PREFER_CONFIG variable has been added, which makes the find_package() call prioritize searching for a package configuration file, even if a search module is available;
- Support has been added for setting the PUBLIC_HEADER and PRIVATE_HEADER properties for interface libraries, which can be specified with headers set via the install(TARGETS) command by passing PUBLIC_HEADER and PRIVATE_HEADER arguments;
- The CMAKE_VS_JUST_MY_CODE_DEBUGGING variable and the target property VS_JUST_MY_CODE_DEBUGGING have been added to enable 'Just My Code' mode in the Visual Studio debugger when compiling with MSVC cl 19.05 and later versions;
- The FindBoost module has been redesigned to work more cohesively in both Config and Module modes when other search modules are present;
- Support for types NOTICE, VERBOSE,
DEBUG, and TRACE has been added to the message() command; - The 'export(PACKAGE)' command now does nothing until explicitly enabled via the CMAKE_EXPORT_PACKAGE_REGISTRY variable.
Source: opennet.ru
