代码之家  ›  专栏  ›  技术社区  ›  Justin

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

  •  0
  • Justin  · 技术社区  · 6 年前

    我用的是一个可以或不可以导出的库 某个模块.cmake 是的。如果它存在,我想使用它更好的能力,但是,否则,我想使用一个简单的解决办法。

    但是,如果 include(SomeModule) 失败,cmake立即失败,并显示消息:

    CMake Error at CMakeLists.txt:42 (include):
      include could not find load file:
    
        SomeModule
    

    如何检测 包含(somemodule) 不需要人工干预就可以工作吗?


    我在想象这样的情景:

    # this function doesn't exist:
    detect_include_exists(SomeModule)
    
    if(SomeModule_FILE_EXISTS)
      include(SomeModule)
    
      # call the functions inside of SomeModule
    else()
      # workaround code
    endif()
    
    1 回复  |  直到 6 年前
        1
  •  1
  •   Tsyvarev    6 年前

    命令 include 支持 可选的 忽略缺少的文件的参数。将其与result_变量一起使用,您可以检查 include() 是否包含该文件:

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