CMake ( cross-platform make) is a platform-independent programming tool for the development and production of software.
CMake was created as part of the Visible Human Project Segmentation and Registration for the Insight Toolkit.
Bill Hoffman Kitware used by new custom and ideas from pcmaker ( a previous build system ) with basic functionalities of the GNU build system to create mid-2000, the first version, which was then further developed by the beginning of 2001. After many improvements developed by other developers who wanted to use CMake for their own projects.
With CMake from script files ( CMakeLists.txt ) makefiles and projects for many integrated development environments and compilers are built. It supports Borland Makefiles CodeBlocks, MinGW / Unix Makefiles Eclipse CDT4 MinGW / nmake / Unix makefiles, MinGW / MSYS / nmake / Unix makefiles, Visual Studio 6-10 32/64-bit, Watcom WMake files and Xcode. CMake automatically checks the dependencies for C, C , Fortran and Java, and supports parallel builds.
Are supported by the CMake scripting language many libraries, such as SWIG, Boost and Qt. Since version 2.6 also cross compilation and cross-platform build is supported. Are integrated tools for testing and release: DART, CDASH, CTest and CPack.
With CPack, it is possible to create installation packages in the following formats:
- Nullsoft Scriptable Install System ( NSIS )
- Self extracting Tar GZip compression ( STGZ )
- Tar BZip2 compression ( TBZ2 )
- Tar GZip compression ( TGZ)
- Tar Compress compression (TC)
- ZIP file format (ZIP)
- Debian packages (DEB)
- RPM Package Manager ( RPM)
Among the users of CMake include the KDE project (version 4, previously autotools ), The Visualization Toolkit, Insight Segmentation and Registration Toolkit, Scribus (previously since version 1.34 Auto Tools), Second Life (since version 1.21 before SCons ), Point Cloud library, OpenCV, OpenSceneGraph, KiCad, QGIS, Avidemux, Supertux, MySQL, Stellarium, LLVM and LMMS.
- GNU build system ( autotools )
- Make, Project and Workspace Creator ( MPC)