我正在使用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()
Run Code Online (Sandbox Code Playgroud)
脚本中有20多个这样的东西 - 它看起来不太好.根据文档,不幸的是,find_path和find_library都没有一个REQUIRED选项可以在这里完成工作(就像它与find_package一样 - 如果没有找到,脚本会停止).您是否知道如何缩短CMake脚本代码?就像是
find_path(XXX_INCLUDE_DIR XXX.h /XXX/include REQUIED)
Run Code Online (Sandbox Code Playgroud)
或类似的东西会很棒.
将它们放入您的自定义FindXXX.cmake模块中.阅读文档并查看FindPNG.cmake示例.将它们放入<project>/cmake/FindXXX.cmake(或类似),然后将包含这些文件的目录添加到CMAKE_MODULE_PATH并使用find_package(),例如
list(APPEND CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake")
find_package(XXX REQUIRED)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3622 次 |
| 最近记录: |