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 :
- For CUDA language, the ability to build using Clang on non-Windows platforms has been provided. Separate CUDA compilation is not yet supported on any platform.
- Support has been added for profiling CMake scripts using the "—profiling-output" and "—profiling-format" options.
- The add_library() and add_executable() commands have been enhanced to support the creation of alias targets that refer to non-global imported targets.
- A new cmake_language() command has been added for meta-operations on scripted or built-in commands.
- A new subcommand file(CONFIGURE) has been added, which is functionally similar to the configure_file() command, but passes content as a string rather than a file reference.
- The find_program(), find_library(), find_path(), and find_file() commands have been updated to include a REQUIRED option, which instructs to stop processing with an error if nothing was found.
- A new variable "CMAKE_CUDA_ARCHITECTURES" has been introduced to specify the CUDA architecture (automatically set if the variable "CMAKE_CUDA_COMPILER_ID" is set to "NVIDIA").
- The property "UNITY_BUILD_MODE" has been added to select the algorithm for grouping included source files in generators (BATCH, GROUP).
- The CheckLinkerFlag module has been added to validate linker flags.
- Generator expressions $, $, $, and $ have been added.
- The ctest utility has a new variable CTEST_RESOURCE_SPEC_FILE for specifying the resource specification file.
Source: opennet.ru
