The new update of the CMake 3.15 script generator has been released

cmake

Some days ago CMake 3.15 cross-platform open source script generator released which acts as an alternative to Autotools and is used in projects like KDE, LLVM / Clang, MySQL, MariaDB, ReactOS, and Blender.

CMake is a multiplatform code generation or automation tool. The name is an abbreviation for "cross platform make" (make cross platform, beyond the use of "make" in the name, CMake is a separate suite and higher level than the common make system of Unix, being similar to autotools.

About CMake

CMake is notable for providing a simple scripting language, tools to extend functionality across modules, minimal number of dependencies (no binding to M4, Perl or Python), caching support, the availability of tools for cross-compilation, support for generating assembly files for a wide range compiler systems and compilers.

The ctest and cpack utilities for defining test scenarios and package creation, with the cmake-gui utility for interactively configuring build parameters.

CMake is used to control the compilation process of the software using simple and independent configuration files of the platform. Cmake generates native makefiles and workspaces that can be used in the desired development environment.

It is comparable to the Unix GNU build system in that the process is controlled by configuration files, in the case of CMake called CMakeLists.txt.

Unlike the GNU build system, which is restricted to Unix platforms, CMake supports the generation of files for various operating systems, which facilitates maintenance and eliminates the need to have multiple sets of files for each platform.

The build process is controlled by creating one or more CMakeLists.txt files in each directory (including subdirectories).

The CMake code is written in C ++ and is distributed under the BSD license.

Main new features of CMake 3.15

This new version highlighted by the arrival of initial generator support for the Swift language Developed by Apple has been added to the Ninja Toolkit assembly script generator.

Besides this, support also arrives for the Clang compiler option for Windows that is built with ABI MSVC, but uses the GNU-style command line options.

The developers emphasize that the variables CMAKE_MSVC_RUNTIME_LIBRARY y MSVC_RUNTIME_LIBRARY are added to select the runtime libraries used by compilers ABI MSVC (MS VisualStudio).

For compilers like MSVC, riding a CMAKE__FLAGSBy default, the list of warning control flags such as "/ W3" is stopped.

Of the other improvements that are highlighted in the announcement of the release of this new version, we find the following:

  • Added the generating expression 'COMPILE_LANG_AND_ID: »To define compiler options for target files that use variables CMAKE__COMPILER_ID y LANGUAGE for each code file
  • The generator expressions C_COMPILER_ID, CXX_COMPILER_ID, CUDA_COMPILER_ID, Fortran_COMPILER_ID, COMPILE_LANGUAGE, COMPILE_LANG_AND_ID y PLATFORM_ID add support for matching a value to a list, comma separated items
  • The variable was added CMAKE_FIND_PACKAGE_PREFER_CONFIG, in which the call to find_package () will search the package configuration file first, even if the search module is available
  • For interface libraries, support has been added for setting properties PUBLIC_HEADER y PRIVATE_HEADER, whose headers can be configured by the install command (TARGETS) passing the arguments PUBLIC_HEADER y PRIVATE_HEADER
  • The variable was added CMAKE_VS_JUST_MY_CODE_DEBUGGING and the destination property VS_JUST_MY_CODE_DEBUGGING to enable "Just My Code" mode in Visual Studio debugger when compiling using MSVC cl 19.05 and newer versions.
  • The FindBoost module has been reworked, which is now being more fully worked in the configuration and module modes with the presence of other search modules
  • Support for NOTICE, VERBOSE, DEBUG, and TRACE types has been added to the message () command
  • The "export (PACKAGE)" command now does nothing until it is explicitly enabled via the variable CMAKE_EXPORT_PACKAGE_REGISTRY.

If you want to know more about it you can consult the following link.


Be the first to comment

Leave a Comment

Your email address will not be published. Required fields are marked with *

*

*

  1. Responsible for the data: Miguel Ángel Gatón
  2. Purpose of the data: Control SPAM, comment management.
  3. Legitimation: Your consent
  4. Communication of the data: The data will not be communicated to third parties except by legal obligation.
  5. Data storage: Database hosted by Occentus Networks (EU)
  6. Rights: At any time you can limit, recover and delete your information.