Release of build system CMake 3.15

Took place the release of the cross-platform open source build script generator CMake 3.15, 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 improvements:

  • Initial support for the language has been added to the build script generator based on the Ninja toolkit. Swift, 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

Buy reliable website hosting with DDoS protection, VPS VDS servers 🔥 Buy reliable website hosting with DDoS protection, VPS VDS servers | ProHoster