【问题标题】:cmake find_path/find_library failed checkcmake find_path/find_library 检查失败
【发布时间】:2013-01-31 11:40:27
【问题描述】:

我正在使用CMake 2.8.2 版本。该项目使用了大量的外部文件和自定义库(通过 find_package 不可用),并且有很多元素,如下所示:

find_path(XXX_INCLUDE_DIR XXX.h /XXX/include)
if (XXX_INCLUDE_DIR)
  message(STATUS "Includes (XXX) found in ${XXX_INCLUDE_DIR}")
else()
  message(FATAL_ERROR "Includes (XXX) not found")
endif()

脚本中有 20 多个这样的内容 - 看起来不太好。根据文档,不幸的是,find_path 和 find_library 都没有一个 REQUIRED 选项可以在这里完成工作(就像 find_package 一样 - 如果找不到,脚本会停止)。您知道如何缩短 CMake 脚本代码吗?类似的东西

find_path(XXX_INCLUDE_DIR XXX.h /XXX/include REQUIED)

或类似的东西会很棒。

【问题讨论】:

    标签: find cmake


    【解决方案1】:

    将它们放入您的自定义 FindXXX.cmake 模块中。阅读docs 并查看FindPNG.cmake 以获取示例。将它们放入<project>/cmake/FindXXX.cmake(或类似),然后将包含这些文件的目录添加到CMAKE_MODULE_PATH并使用find_package(),例如

    list(APPEND CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake")
    
    find_package(XXX REQUIRED)
    

    【讨论】:

      【解决方案2】:

      您可能想使用macro 或function。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-12-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-04-28
        相关资源
        最近更新 更多