【cmake篇】自定义cmake模块(自定义Findxxx.cmake并搭配 find_package 调用)

本文介绍了如何编写自定义的CMake模块FindAdd.cmake,包括获取头文件和库文件路径,设置控制变量,以及在CMakeLists.txt中使用find_package引入模块。同时,详细解释了find_package的模块模式和配置模式。

这里所说的自定义cmake模块,可以简单理解为自定义 Findxxx.cmake 或者 XXXConfig.cmake 文件,然后可以搭配find_package 来一次引入模块中涉及的所有内容。

如果不熟悉find_path、find_library,可以参考:find_path、find_library

如果不熟悉find_package 的两种检索模式,可以参考:find_package 详解


         目录

1、编写Findxxx.cmake

(1) 获取头文件路径

(2) 获取库文件(含全路径)

(3) 设置控制变量 XXX_FOUND

(4) 完整FindAdd.cmake 

2、搭配 find_package 引入自定义cmake模块

(1) 添加检索路径

(2) 查找模块文件 FindAdd.cmake

(3) 判断是否引入

(4) 完整CMakeLists.txt 写法


1、编写Findxxx.cmake

Findxxx.cmake 支持 CMakeLists.txt 所使用的语法,但无法主动通过命令执行,find_package 匹配了自己所需的模块后,会自动执行 Findxxx.cmake。

Findxxx.cmake 的作用:

  • 获取头文件所在路径
  • 获取库文件全路径
  • 自定义控制变量,如 XXX_FOUND 可以用于判断是否成功引入模块(是否获取到了头文件路径和库文件全路径) 
  • ... ...

下面我们要引入的头文件是 gather.h、mul.h 和库文件 libmul.so 。生成的模块是FindAdd.cmake(模块名称是Add) 

(1) 获取头文件路径

因为find_path 每次都会将命令的执行结果,这里就是 头文件路径缓存到 CMakeCache.txt 文件中,所以每次查找前最好清空一下缓存。

unset(INCLUDE_DIR CACHE)    # 清空缓存
find_path(INCLUDE_DIR       # 查
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值