CMake命令篇--2、cmake项目基本完整流程

发布于:2025-09-04 ⋅ 阅读:(27) ⋅ 点赞:(0)

目录

一、流程

二、命令工具使用

        (0)配置系统(上文已介绍)

        (1)构建系统cmake

        (2)编译连接cmake --build/make

        (3)测试ctest/make test

        (4)安装sudo cmake --install/make install

        (5)打包cpack

三、脚本模式

四、调用外部命令

五、查看外部文档


一、流程

二、命令工具使用

        (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


网站公告

今日签到

点亮在社区的每一天
去签到