1.什么是CMake?
请参考
http://en.wikipedia.org/wiki/CMake
http://www.cmake.org/
简单来讲,CMake是一套跨平台的工程构建工具。传统的*nix下生成Makefile的工具主要是autotools系列。这些工具根据不同的系统可以生成相应的makefile。相比于传统的autotools系列工具。CMake可以根据不同平台下的IDE生成相应的工程文件。目前至少支持makefile,Visual studio系列, eclipse cdt, mingw,和codeblocks等。
2.一个CMake的例子。
假设现在希望生成一个名为Test的工程,包括hello.cpp一个文件(在目录Test下)
1 #include <stdio.h>
2
3 int main(int argc,char **argv)
4 {
5 printf("Hello world!\n");
6 return 0;
7 }
现在希望CMake构建该工程。
首先,CMake需要CMakeLists.txt文件来配置。于是在Test目录下新建CMakeLists.txt文件。
CMakeLists.txt文件内容
PROJECT (Test)
SET(SRC_LIST hello.cpp)
ADD_EXECUTABLE(test ${SRC_LIST})
然后构建项目,在命令行下(对应于windows下的command shell),进入Test目录。
cmake .
即可(注意.表示当前目录)。CMake便会自动生成相应的Makefile(或者visual studio的工程文件)
3, 更多参考
上述例子比较简单,更多CMake的用法可以参考CMake的官方文档和wiki,http://www.cmake.org -->help --> document and wiki
另外,个人感觉CMake的官方文档本身写的很生硬和晦涩。一般性的应用推荐下面这个tutorial
http://sewm.pku.edu.cn/src/paradise/reference/CMake%20Practice.pdf
(其中pdf文件文件第6页最后一行,SRC_LIST应为${SRC_LIST},相信大家很容易可以看出来原文的笔误)
基本上正常使用所需要的内容,上述tutorial 都已包含。而且例子很多,强烈推荐。