CMake 基础

CMake是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程)。 他能够输出各种各样的makefile或者project文件,能测试编译器所支持的C++特性,类似UNIX下的automake。 只是 CMake 的组态档取名为 CMakeLists.txt。 Cmake 并不直接建构出最终的软件,而是产生标准的建构档(如 Unix 的 Makefile 或 Windows Visual C++ 的 projects/workspaces),然后再依一般的建构方式使用。 这使得熟悉某个集成开发环境(IDE)的开发者可以用标准的方式建构他的软件,这种可以使用各平台的原生建构系统的能力是 CMake 和 SCons 等其他类似系统的区别之处。

cmake官方文档

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>]