目录
(4)安装sudo cmake --install/make install
一、流程
二、命令工具使用
(0)配置系统(上文已介绍)
a.设置最低的cmake版本
b.设置项目名称
c.添加构建目标
(1)构建系统cmake
a.cmake [options] <path-to-source>
b.cmake [options] <path-to-existing-build>
c.cmake [options] -S <path-to-source> -B <path-to-build>
构建系统有两类:
(1)源内构建(上文测试使用)
在源代码树包含的顶级CMakeLists.txt的⽬录下进⾏直接构建。camke .
(2)源外构建(本文使用) --推荐使用,层次清晰,方便操作
单独指定⼀个build ⽬录,然后在⼦⽬录⾥制定源⽂件⽬录也就是包含CMakeLists.txt 的⽬录(1)cmake 源代码目录 ed:cd build && cmake ../ 隐含 ./为构建⽬录 ../ 为源⽂件⽬录 (2)cmake -S 源代码目录 -B 构建目录 eg: cd build && cmake -S ../ -B ./
(2)编译连接cmake --build/make
cmake --build 目录(makefile所在目录) == make
(3)测试ctest/make test
目录结构:新增test.cpp
在CMakeLists.txt中添加测试配置,进行测试
include(CTest) add_test( NAME XXX(测试名) COMMAND 执行测试的命令(即测试的可执行名) )
测试命令:
ctest == make test
测试成功:
测试失败:
(4)安装sudo cmake --install/make install
将可执行程序安装到本地直接执行
include(GNUInstallDirs) #GNUInstallDirs--不同系统版本的默认匹配安装路径 install(TARGETS xxx(要安装到本地路径下的目标程序名))
因为要安装到默认的路径下/usr/bin/...,所以我们要提权进行写入操作
sudo cmake --install == sudo make install
(5)打包cpack
将文件打包传递使用
cpack具体步骤:
(1)设置临时安装目录
(2)执行cmake_install.cmake
(3)收集临时目录的文件列表
(4)执行打包 & 拷贝压缩包到我们的构建目录
sudo cpack
三、脚本模式
CMake脚本模式, 不会⽣成构建产物,也不会⽣成中间过程 。适合处理各种与构建系统⽆关的⾃动化任务,通过编写 简洁的脚本⽂件 ,你可以 实现环境检查、⽂件处理、部署打包等 功能。
cmake -P <file>
eg:
/usr/local/bin/cmake -P cmake_install.cmake
四、调用外部命令
cmake -E
eg:
主makefile⾥的 RM命令,其实就是使⽤命令模式调⽤了rm -f 外部命令
RM = /usr/bin/cmake -E rm -f
五、查看外部文档
cmake --help