CMake 基础
CMake是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程)。 他能够输出各种各样的makefile或者project文件,能测试编译器所支持的C++特性,类似UNIX下的automake。 只是 CMake 的组态档取名为 CMakeLists.txt。 Cmake 并不直接建构出最终的软件,而是产生标准的建构档(如 Unix 的 Makefile 或 Windows Visual C++ 的 projects/workspaces),然后再依一般的建构方式使用。 这使得熟悉某个集成开发环境(IDE)的开发者可以用标准的方式建构他的软件,这种可以使用各平台的原生建构系统的能力是 CMake 和 SCons 等其他类似系统的区别之处。
CMake 安装
安装包下载地址: https://cmake.org/download/
历史版本: https://cmake.org/files/
CMake 命令
构建项目系统
### 命令格式
# cmake [<options>] <path-to-source>
mkdir build && cd build && cmake ../src
# cmake [<options>] <path-to-existing-build>
cd build && cmake ..
# cmake [<options>] -S <path-to-source> -B <path-to-build>
cmake -S src -B build
选项
- -S src
- -B build
- -C cache
- -D var:type=value | -D var=value
- -U expr
- -G generator-name
- -T toolset-spec
- -A platform-name
- -Wxxxxx
- …
构建项目
##### 命令格式
# cmake --build <dir> [<options>] [-- <build-tool-options>]
cmake --build .
选项
- –paralell jobs, -j jobs
- –target tgt, -t tgt
- –verbose, -v
安装项目
#### 命令格式
# cmake --install <dir> [<options>]
cmake --install . --prefix /usr/local/test-install
选项
- –prefix PREFIX
- -v, –verbose
打开项目
## 打开项目, 支持特定的generators
cmake --open <dir>
执行 cmake 脚本
## 执行 cmake 脚本
cmake [{-D <var>=<value>}...] -P <cmake-script-file>
## 传入参数
cmake -P test.cmake -- args1 args2
执行命令
## 执行 cmake 内建命令
# cmake -E <command> [<options>]
cmake -E capabilities
cmake -E help
cmake -E echo 123
cmake -E md5sum file
cmake -E sha1sum file
执行 cmake Find-Package 工具
cmake --find-package [<options>]
查看帮助
cmake --help[-<topic>]
ctest 命令
ctest [<options>]
ctest --build-and-test <path-to-source> <path-to-build>
--build-generator <generator> [<options>...]
[--build-options <opts>...] [--test-command <command> [<args>...]]
ctest {-D <dashboard> | -M <model> -T <action> | -S <script> | -SP <script>}
[-- <dashboard-options>...]
cpack 命令
cpack [<options>]