Release of CMake 3.18 build system

Submitted by release of a cross-platform open source build script generator CMake 3.18, 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.

All improvements:

  • The CUDA language can be built using Clang on non-Windows platforms. Separate compilation of CUDA is not yet supported on any platform.
  • Added support for profiling CMake scripts using the "--profiling-output" and "--profiling-format" options.
  • Support for creating Alias ​​Targets that refer to non-global imported targets has been added to the add_library() and add_executable() commands.
  • Added cmake_language() command for meta-operations on scripted or built-in commands.
  • Added file(CONFIGURE) subcommand, similar in functionality to configure_file(), but passing the content as a string rather than a file link.
  • A REQUIRED option has been added to the find_program(), find_library(), find_path(), and find_file() commands to stop processing with an error if nothing was found.
  • Added "CMAKE_CUDA_ARCHITECTURES" variable to specify CUDA architecture (set automatically if "CMAKE_CUDA_COMPILER_ID" variable is set to "NVIDIA").
  • Added the "UNITY_BUILD_MODE" property to select the algorithm for grouping included source files (BATCH, GROUP) in the generators.
  • Added CheckLinkerFlag module to check if link flags are correct.
  • $ generator expressions added , $ , $ and $ .
  • The CTEST_RESOURCE_SPEC_FILE variable has been added to the ctest utility to specify a resource specification file.

Source: opennet.ru

Add a comment