非交互式命令行工具
生成缓存
生成 cmake 缓存:
cmake -B build
等同于:
mkdir -v build
cd build
cmake ..
使用 nginx
生成器, cmake 在 linux 平台默认使用 makefile
生成器:
cmake -G Ninja -B build
修改选项的值:
cd build
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH=/path/to/ros/cmake ..
编译项目
编译:
cd build
cmake --build .
等同于:
cd build
make -j$(nproc)
安装
安装文件到系统里:
cd build
sudo cmake --build . --target install
等同于:
cd build
sudo make install
在新版本中, 引入了 --install
选项:
cd build
sudo cmake --install .
列举选项
-L
, 列出可用选项-LH
, 列出可用选项, 包括注释-N
, 只读模式, 不会再重头运行一次cmake
脚本
常用的选项组合是:
$ cmake -N -LH .
运行脚本
cmake 本身是脚本语言, 类似于 bash
, 它们是可以直接运行的:
hello.cmake
的内容:
message("Hello, world!")
cmake -P hello.cmake
也可以使用 shebang line
, 修改后的 hello.cmake
如下:
#!/usr/bin/env -S cmake -P
message("Hello, world")
然后直接运行它:
chmod +x hello.cmake
./hello.cmake
命令行工具
cmake 命令本身有提供命令行工具, 尤其是对 windows 平台比较有用, 很多命令在 *nix
环境默认已提供.
cmake -E <command> [<options>]
比如:
cmake -E sleep 5
常用选项有:
- md5sum, sha1sum, sha256sum, sha512sum
- copy, mv, sleep, time, touch, echo
- environment 列出当前的环境变量, 类似于
env
命令 - capabilities 以
JSON
格式显示当前 cmake 命令支持的功能, 比如有哪些Generators
- server, 运行服务器模式, 启动一个 cmake 守护进程, 可通过网络访问它