CMake
简介
CMake is an open-source, cross-platform family of tools designed to build, test and package software. CMake is used to control the software compilation process using simple platform and compiler independent configuration files, and generate native makefiles and workspaces that can be used in the compiler environment of your choice. The suite of CMake tools were created by Kitware in response to the need for a powerful, cross-platform build environment for open-source projects such as ITK and VTK.
CMake is part of Kitware’s collection of commercially supported open-source platforms for software development.
特点
- 在每个源码目录下都有一个 CMakeLists.txt.
- CMake 语句不区分大小写。一句一行,无行结束符号,注释用#
- CMake 实际也是一种编程语言。CMake 根据 CMakeLists.txt 自动生成 Makefile.
- CMake 比 Autotools 更简单明了
语法
1、变量使用${}方式取值,但是在 IF 语句中是直接使用变量名取值
MESSAGE(STATUS “This is bin dir” $(PROJECT_BINARY_DIR))
MESSAGE(STATUS “This is bin dir $(PROJECT_BINARY_DIR)”)
上面两句等效。
2、指令(参数 1 参数 2 …),参数之间用空格或分号隔开
SET( SRC_LIST main.cpp hello.cpp)
SET(SRC_LIST “main.cpp” “hello.cpp”)
SET(SRC_LIST “main.cpp”;“hello.cpp”)
3、内部构建和外部构建:在哪个目录下执行 cmake 命令,则在哪个目录构建
In-source:编译过程文件和源码文件在同一目录下面(在工程目录下 cmake)
Out-of-sourc:将编译目录和源码目录分割开(在非工程目录下 cmake)。
4、常用变量及指令
(1)CMake变量
序号 | 语句 | 注释 |
---|---|---|
1 | PROJECT_BINARY_DIR 、PROJECT_SOURCE_DIR、CMAKE_BINARY_DIR 、CMAKE_SOURCE_DIR | 工程目标文件目录、工程源文件目录 |
2 | CMAKE_CURRENT_BINARY_DIR、CMAKE_CURRENT_SOURCE_DIR | 指当前处理的 CMakeLists.txt 所在的路径 |
序号 | 语句 | 注释 |
---|---|---|
1 | PROJECT_BINARY_DIR 、PROJECT_SOURCE_DIR、CMAKE_BINARY_DIR 、CMAKE_SOURCE_DIR | 工程目标文件目录、工程源文件目录 |
2 | CMAKE_CURRENT_BINARY_DIR、CMAKE_CURRENT_SOURCE_DIR | 指当前处理的 CMakeLists.txt 所在的路径 |