我无法识别 CMake 的include()声明CMAKE_MODULE_PATH. 我希望做这样的事情:
list(APPEND CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake")\ninclude(Foo.cmake)\nRun Code Online (Sandbox Code Playgroud)\n\n使用这种风格的目录树:
\n\n.\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 cmake\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 Foo.cmake\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 CMakeLists.txt\nRun Code Online (Sandbox Code Playgroud)\n\n但是,我收到错误:
\n\n include could not find load file:\n\n Foo.cmake\nRun Code Online (Sandbox Code Playgroud)\n\n基于include()和的文档CMAKE_MODULE_PATH文档,我认为这应该是可能的。
如果我保留同一棵树但修改include,它会加载正常:
include(cmake/Foo.cmake)\nRun Code Online (Sandbox Code Playgroud)\n\n我错了还是做错了什么?
\n\n谢谢!
\n它应该是一个模块名称 -不带 扩展名 - 用于在使用命令搜索文件时.cmake应用变量:CMAKE_MODULE_PATHinclude
# 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)
Run Code Online (Sandbox Code Playgroud)
include函数的签名
include(<文件|模块> [可选] [RESULT_VARIABLE] [NO_POLICY_SCOPE])
意味着它的第一个参数可以是文件或模块。
并且仅在搜索模块CMAKE_MODULE_PATH时应用变量:
<modulename>.cmake如果指定了模块而不是文件,则首先在 中搜索具有名称的文件CMAKE_MODULE_PATH,然后在 CMake 模块目录中搜索。
文件名- <modulename>.cmake- 表明模块名称不应有.cmake后缀。
| 归档时间: |
|
| 查看次数: |
2023 次 |
| 最近记录: |