CMake在使用include包含.cmake文件的坑

通常我们会复用一些cmake指令(比如将某些指令封装为函数),将其写到某一个.cmake文件中,然后在我们的CMakeLists.txt使用include命令把.cmake文件包含进来使用里面的函数等。

本例子目录结构:

.
├── build
├── cmake
│   └── test.cmake
└── CMakeLists.txt

test.cmake文件内容增加一个打印字符串的函数:

function(print_string str)
    message("str=${str}")
endfunction(print_string)

 

在CMakeLists.txt中进行include然后调用函数。

包含方式有两种:

1. 直接包含路径及.cmake文件名

2. 先设置CMAKE_MODULE_PATH变量,再包含文件(**不要带.cmake文件扩展名,带了会提示找不到**)

cmake_minimum_required(VERSION 3.5)

project(cmake_test)

#方式一:直接包含路径及.cmake文件
include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/test.cmake)

#方式二:先设置CMAKE_MODULE_PATH变量,这个变量是定义.cmake文件的搜索目录的
# set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake/)
# include(test)  ##不要写成test.cmake

print_string("cmake test")

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值