CMake 2.8.0 was released in September 2009. This version of CMake fixes many open issues and provides some exciting new features.
The official CMake GUI is now Qt-based, and is distributed with CMake on Windows, Linux, and Mac OSX. The GUI provides for quick searching of CMake options, and the ability to have options with lists of defined options. The ccmake executable will still be available for command line use on supported systems.
There is a “–build” option for the cmake executable that can be used to build any CMake build tree from the command line, regardless of the generator used. A new External project module can be used to create custom targets to drive download, update/patch, configure, build, install and test steps of an external project.
The new CMake has support for Visual Studio 2010. It also has significant improvements for the Eclipse project generator. All targets are now available in Eclipse and system include directories and predefined macros are now detected for improved syntax highlighting.
CTest now runs many tests in parallel with a -j N command line option. A new CTest option, CTEST_USE_LAUNCHERS, can be used to improve error and warning reports on CDash dashboards. CTest will determine the return value for each process launched during the build and “log scrapping” is not required to figure out errors and warnings. CTest can also work with the new CDash sub-project feature and create hierarchical dashboards. Support for modern version control systems Git, Mercurial, and Bazaar were added.
CPack now has the option to use DESTDIR for any CMake based projects giving more flexibility on final path names for installers. The Deb generator now computes the arch instead of hard coding it. Creating Fortran/C mixed language projects is easier. CMake automatically computes the runtime libraries for a compiler and adds them to the link line. In addition, a FortranCInterface module determines the required name mangling.
Other enhancements include a faster makefile dependency scanner, improved find modules, and support for manifests when using Intel compilers on Windows. The xmlrpc dependency has been removed, and a MAKE_OSX_DEPLOYMENT_TARGET cache variable has been created to set the deployment OS for a build on OSX. We also added a new FindCUDA module that includes the ability to compile cross-platform GPU Cuda code from CMake projects.
Several new policies were added to the release. For specific information regarding these policies, and a full list of features and bug fixes, go to www.cmake.org.