我无法让CMake的intArr
语句识别include()
。我希望做这样的事情:
CMAKE_MODULE_PATH
具有这种样式的目录树:
list(APPEND CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake")
include(Foo.cmake)
但是,我得到了错误:
.
├── cmake
│ └── Foo.cmake
├── CMakeLists.txt
基于include()
和CMAKE_MODULE_PATH
的文档,我认为这应该可行。
如果我保留同一棵树但修改 include could not find load file:
Foo.cmake
,则可以正常加载:
include
我是误会还是做错了什么?
谢谢!
答案 0 :(得分:3)
它应该是一个模块名称-无扩展名.cmake
-使用CMAKE_MODULE_PATH
搜索文件时应用include
变量命令:
# 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
函数的签名
include(
[可选] [RESULT_VARIABLE] [NO_POLICY_SCOPE])
表示其第一个参数可以是文件或模块。
和CMAKE_MODULE_PATH
变量仅在搜索模块时适用:
如果指定模块而不是文件,则首先在
<modulename>.cmake
中搜索名称为CMAKE_MODULE_PATH
的文件,然后在CMake模块目录中搜索。
文件的名称-<modulename>.cmake
-表示模块名称不应该带有.cmake
后缀。