CMake is a cross-platform installation ( compilation ) tool that can be used to describe the installation of all platforms (the compilation process) with simple statements. He is able to output a variety of Makefile or project files that can test the C + + features supported by the compiler, similar to the Automake under UNIX. Only the CMake configuration file is named CmakeLists.txt. Cmake does not directly construct the final software, but rather produces standard constructs such as Unix's Makefile or Windows Visual C + + projects/workspaces, which are then used in a general constructive fashion. This makes it possible for developers familiar with an integrated development environment (IDE) to build their software in a standard way, and the ability to use the native building systems of each platform is the difference between CMake and scons and other similar systems.
CMake can compile the source code, make the library, generate the adapter (wrapper), and can construct the execution file in any order. CMake Support in-place construction (binary and source code in the same directory tree) and out-of-place constructs (binary files in other directories), so it is easy to construct multiple binaries from the same source code tree. CMake also supports the construction of static and dynamic libraries.
The name "CMake" is the abbreviation for "Cross platform make". Although the name contains "make", the common "make" system on CMake and UNIX is separate and more advanced.
Official website: http://www.cmake.org/
Http://www.cnblogs.com/sinojelly/archive/2010/05/22/1741337.html
Cross-platform compilation CMake use