Cross-platform system offers new features and enhanced capabilities.
Kitware is pleased to announce the release of CMake 3.2. This is a major release that includes significant enhancements to the software, making application easier and more efficient for CMake’s extensive user base.
Among its highlights, the release features improvements to CMake’s syntax, commands, variables, properties, and modules. It also introduces developments to diagnostics and advancements to CTest and CPack.
One of the more significant attributes of the 3.2 release is that CMake’s “Compile Features” functionality is now aware of features supported by a greater number of compilers, including Apple Clang (“AppleClang”) for Xcode versions 4.4 through 6.1, the GNU compiler collection (“GNU”) versions 4.4 through 5.0 on UNIX and Apple, Microsoft Visual Studio (“MSVC”) versions 2010 through 2015, and Oracle SolarisStudio (“SunPro”) version 12.4.
CMake now supports Unicode characters encoded as UTF-8 on Windows. As a result, Unicode characters may be used in CMake code, in paths to source files, in configured files such as .h.in files, and in other files read and written by CMake.
The CMake commands “add_custom_command()” and “add_custom_target()” have a new “BYPRODUCTS” option to specify files produced as side effects of the custom commands. In addition, the “file(GENERATE)” command can now generate files that are used as source files for build system targets.
CMake is an extensible, open-source system that manages the build process in a manner that is independent of the specific operating system and compiler. Unlike many cross-platform systems, CMake is designed to be used in conjunction with the native build environment, placing simple configuration files in each source directory (called CMakeLists.txt files) to generate standard build files (e.g., makefiles on Unix and projects/workspaces in Windows MSVC).
Since its initial implementation in 2000, CMake’s development has been led by Kitware and fostered by its active development community. The software has been adopted by KDE, Netflix, Second Life, Inria, The HDF Group, and RobotCub among many others.