Cmake是一個編譯、構建工具。使用CMakeLists.txt來描述構建過程,能夠生成標準的構建文件,如Makefile。通常先編寫CMakeLists.txt,而後經過cmake來生成Makefile,最後執行make進行編譯。html
在ubuntu上安裝cmake很是簡單,執行sudo apt-get install cmake便可。若是想安裝最新的cmake版本,就須要本身進行源碼編譯安裝。源碼下載路徑:https://cmake.org/download。源碼編譯安裝很是簡單,這裏就再也不詳細描述了。ubuntu
cmake安裝完成後,執行cmake --version,便可查看cmake的版本號。個人是3.5.1ide
這裏給出一個簡單的使用cmake進行構建的工程示例,目錄結構以下:工具
test01
├── build
├── CMakeLists.txt
└── main.cui
main.c文件以下:url
#include <stdio.h> int main(int argc, char** argv) { printf("hello cmake\n"); return 0; }
CMakeLists.txt內容以下:code
#設置cmake的最小版本 CMAKE_MINIMUM_REQUIRED(VERSION 2.6) #設置項目名稱 project(test01) #設置源文件 aux_source_directory(. dir_srcs) #設置可執行程序 add_executable(test01 ${dir_srcs})
我這裏mkdir 了build 目錄,htm
cd buildip
cmake ..ci
make
最後就會在當前目錄下看到生成的test01可執行程序。
接下來,對上例中的CMakeLists.txt的語法進行解釋。
CMakeLists.txt 的語法比較簡單,由命令、註釋和空格組成,其中命令是不區分大小寫的,符號"#"後面的內容被認爲是註釋。
Call the
cmake_minimum_required()
command at the beginning of the top-levelCMakeLists.txt
file even before calling theproject()
command. It is important to establish version and policy settings before invoking other commands whose behavior they may affect. See also policyCMP0000
.
cmake_minimun_required
格式:cmake_minimum_required(VERSION <min>[...<max>][FATAL_ERROR])
設置該工程的cmake最低支持版本,注意"VERSION"不能寫成小寫,不然會報cmake_minimum_required called with unknown argument "version".
project
project(<PROJECT-NAME> [LANGUAGES] [<language-name>...]) project(<PROJECT-NAME> [VERSION <major>[.<minor>[.<patch>[.<tweak>]]]] [DESCRIPTION <project-description-string>] [HOMEPAGE_URL <url-string>] [LANGUAGES <language-name>...])
aux_source_directory
aux_source_directory(<dir> <variable>)
Find all source files in a directory.Collects the names of all the source files in the specified directory and stores the list in the
add_executable
add_executable(<name> [WIN32] [MACOSX_BUNDLE] [EXCLUDE_FROM_ALL] [source1] [source2 ...])
將源文件編譯成可執行程序,可執行程序的名稱由
補充:
cmake的命令包含 scripting commands,project commands,ctest commands,deprecated commands。