Cmake 如何检测include(SomeModule)是否有效?

Cmake 如何检测include(SomeModule)是否有效?,cmake,Cmake,我使用的库可能导出或不导出SomeModule.cmake。如果它存在,我想使用它来获得更好的功能,但如果不存在,我想使用一个简单的解决方法 但是,如果include(SomeModule)失败,则CMake会立即失败,并显示以下消息: CMakeLists.txt处的CMake错误:42(包括): include找不到加载文件: 某些模块 如何检测include(SomeModule)是否可以在没有手动干预的情况下工作 我在想象这样的事情: #此函数不存在: 检测\u包含\u存在(Some

我使用的库可能导出或不导出SomeModule.cmake。如果它存在,我想使用它来获得更好的功能,但如果不存在,我想使用一个简单的解决方法

但是,如果
include(SomeModule)
失败,则CMake会立即失败,并显示以下消息:

CMakeLists.txt处的CMake错误:42(包括):
include找不到加载文件:
某些模块
如何检测
include(SomeModule)
是否可以在没有手动干预的情况下工作


我在想象这样的事情:

#此函数不存在:
检测\u包含\u存在(SomeModule)
如果(某些模块文件存在)
包括(某些模块)
#调用SomeModule内部的函数
else()
#变通代码
endif()
命令支持忽略缺失文件的可选参数。将其与结果变量一起使用,您可以检查
include()
是否实际包含该文件:

include(SomeModule OPTIONAL RESULT_VARIABLE SomeModule_Found)
if(NOT SomeModule_Found)
     # Include file is absent. Need some workaround.
endif()
命令支持忽略缺少的文件的可选参数。将其与结果变量一起使用,您可以检查
include()
是否实际包含该文件:

include(SomeModule OPTIONAL RESULT_VARIABLE SomeModule_Found)
if(NOT SomeModule_Found)
     # Include file is absent. Need some workaround.
endif()

美好的我没想到要检查文档中的
include
。很好。我没有想到要检查文档中的
include