cmake--include

include(GNUInstallDirs)

GNUInstallDirs是一个cmake模块----就是一个.cmake文件。

GNU标准

GNUInstallDirs作用

在 CMake 中,GNUInstallDirs 模块提供了一组变量,这些变量表示了标准的 GNU 安装目录。这些变量包括 CMAKE_INSTALL_PREFIX(安装的根目录)、CMAKE_INSTALL_BINDIR(可执行文件目录)、CMAKE_INSTALL_LIBDIR(库文件目录)等等。

使用 include(GNUInstallDirs) 会自动设置这些变量,使得在不同系统上能够使用相同的 CMakeLists.txt 文件,并且符合 GNU 标准。这样,你可以在你的项目中使用这些变量,而不用硬编码目录路径,从而提高了你的项目的可移植性。

include的作用

用于寻找一个.cmake文件(模块),然后将这个.cmake模块中的内容插入这个CMakeLIsts.txt文件中。

同c++的#include一样,寻找需要指定寻找的路径,找到之后,再将找到的文件的内容加载到当前文件。

使用

指定路径

通过cmake的那些路径变量(eg:CMAKE_SOURDE_DIR)指定.cmake模块的文件路径即可;

或者定义一个路径变量,然后使用路径变量指定:

set(cmake_path "${CMAKE_SOURCE_DIR}/cmake")
include("${cmake_path}/test.cmake")

find_package和include

find_package也是用于寻找.cmake模块的,和include有啥区别?

寻找的.cmake文件格式

find_package不仅可以用于查找xxx-config.cmake,xxxConfig.cmake文件,还可以用于查找Findxxx.cmake文件。

find查找的模块文件或者配置文件文件格式是固定的:

模块文件一定要是:FindPackage_name.cmake;

配置文件一定要是:package_nameConfig.cmake/package_name-config.cmake;

find_package

而include可以是package_name.cmake,FIndPackage_name.cmake,(也可以是package_nameConfig.cmake/package_name-config.cmake。--待验证)

是否有包相关的变量

include只会将找到的包的内容插入到使用include的地方,不会像find_packe一样设置变量。

要使用变量,除非被include 的.cmake文件中有定义。

教程

链接1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值