首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CMake忽略CMAKE_MODULE_PATH

CMake忽略CMAKE_MODULE_PATH
EN

Stack Overflow用户
提问于 2019-12-13 16:30:03
回答 1查看 1.1K关注 0票数 4

我很难让CMake的include()语句识别CMAKE_MODULE_PATH。我希望做这样的事:

代码语言:javascript
复制
list(APPEND CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake")
include(Foo.cmake)

使用这种类型的目录树:

代码语言:javascript
复制
.
├── cmake
│   └── Foo.cmake
├── CMakeLists.txt

但是,我得到了错误:

代码语言:javascript
复制
  include could not find load file:

    Foo.cmake

基于include()CMAKE_MODULE_PATH的文档,我认为这应该是可能的。

如果我保留相同的树但修改了include,那么它将很好地加载:

代码语言:javascript
复制
include(cmake/Foo.cmake)

我是弄错了还是做错了什么?

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-12-13 17:02:47

它应该是一个模块名称--没有 .cmake扩展名的--用于在使用include命令搜索文件时应用CMAKE_MODULE_PATH变量:

代码语言:javascript
复制
# This searches a *module* and uses 'CMAKE_MODULE_PATH' variable
include(Foo)
# This searches a *file* and doesn't use 'CMAKE_MODULE_PATH' variable
include(Foo.cmake)

include函数的签名

包含(可选NO_POLICY_SCOPE)

这意味着它的第一个参数可以是文件,也可以是模块。

CMAKE_MODULE_PATH变量仅在搜索模块时应用。

如果指定了一个模块而不是一个文件,则首先在CMAKE_MODULE_PATH中搜索名为<modulename>.cmake的文件,然后在CMake模块目录中搜索该文件。

文件的名称-- <modulename>.cmake --建议模块名不应该带有.cmake后缀。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59326450

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档