CMake忽略CMake_模块_路径

CMake忽略CMake_模块_路径,cmake,include,Cmake,Include,我无法让CMake的include()语句识别CMake\u模块\u路径。我希望这样做: list(APPEND CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake") include(Foo.cmake) 使用此样式的目录树: . ├── cmake │   └── Foo.cmake ├── CMakeLists.txt 但是,我得到了一个错误: include could not find load file: Foo.cmake

我无法让CMake的
include()
语句识别
CMake\u模块\u路径
。我希望这样做:

list(APPEND CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake")
include(Foo.cmake)
使用此样式的目录树:

.
├── cmake
│   └── Foo.cmake
├── CMakeLists.txt
但是,我得到了一个错误:

  include could not find load file:

    Foo.cmake
根据和的文档,我认为这应该是可能的

如果我保持同一棵树,但修改了
include
,则可以正常加载:

include(cmake/Foo.cmake)
我错了还是做错了什么


谢谢

当使用
include
命令搜索文件时,它应该是一个模块名称-而不带
.cmake
扩展名-用于应用
cmake\u模块路径
变量:

# 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)

包含
函数的签名

包括([可选][结果变量] [无政策范围])

表示其第一个参数可以是文件模块

CMAKE\u MODULE\u PATH
变量仅在搜索模块时应用:

如果指定的是模块而不是文件,则首先在
cmake\u模块路径
中搜索名为
.cmake
的文件,然后在cmake模块目录中搜索


文件名-
.cmake
-表明模块名不应该有
.cmake
后缀。

它应该是一个模块名-,没有
.cmake
扩展名-当使用
包含
命令搜索文件时,对于apply
cmake\u模块路径
变量:

# 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)

包含
函数的签名

包括([可选][结果变量] [无政策范围])

表示其第一个参数可以是文件模块

CMAKE\u MODULE\u PATH
变量仅在搜索模块时应用:

如果指定的是模块而不是文件,则首先在
cmake\u模块路径
中搜索名为
.cmake
的文件,然后在cmake模块目录中搜索


文件名-
.cmake
-表明模块名不应该有
.cmake
后缀。

@Tsyarev非常感谢!你的第二个建议奏效了-搜索
Foo
而不是
Foo.cmake
@Tsyarev非常感谢!你的第二个建议奏效了——搜索
Foo
,而不是
Foo.cmake