CMake is used to control the software compilation process using simple platform and compiler independent configuration files.
CMake generates native makefiles and workspaces that can be used in the compiler environment of your choice.
CMake is quite sophisticated: it is possible to support complex environments requiring pre-processor generation, system configuration, code generation, and template instantiation.
CMake was developed by Kitware as part of the NLM Insight Segmentation and Registration Toolkit project. The ASCI VIEWS project also provided support in the context of their parallel computation environment. Other sponsors include the Insight, VTK, and VXL open source software communities.
The goals for CMake include the following:
· Develop an open source, cross-platform tool to manage the build process,
· Allow the use of native compilers and systems,
· Simplify the build process,
· Optionally provide a user-interface to manage the build system,
· Create an extensible framework,
· Grow a self-sustaining community of software users and developers.