我正在尝试编写FindQwt.cmake模块。我用Google搜索了现有的模块,但没有一个能用于我的安装。
我模块的查找路径调用目前看起来像这样:
find_path ( QWT_INCLUDE_DIR
NAMES qwt_global.h
HINTS ${QT_INCLUDE_DIR}
PATHS
/opt
/usr/include
/usr/local
/usr/local/include
"$ENV{LIB_DIR}/include"
"$ENV{INCLUDE}"
PATH_SUFFIXES qwt
)
实际的qwt_global.h
文件位于以下路径:/opt/qwt-6.1.2/src/qwt_global.h
如果我添加路径后缀qwt-6.1.2/src
,我可以使用它,但在我看来,如果我需要将每个版本硬编码到其中,它会破坏拥有查找模块的目的(假设我稍后在模块中检查版本是否兼容,并不关心兼容集中使用的版本。)
我在PATH_SUFFIXES中尝试了qwt*
和qwt*/src
,但无济于事。
这似乎是一个常见的问题。有没有人知道如何修复此find_path
调用,以便在路径中拥有版本号?
编辑:我正在使用cmake 3.0.2
答案 0 :(得分:1)
您可以使用FILE(GLOB ...)
。
file(GLOB QWT_SEARCH_PATHS "/opt/qwt-*" "/usr/include/qwt-*")
find_path(QWT_INCLUDE_DIR
NAMES qwt_global.h
PATHS ${QWT_SEARCH_PATHS})
为了更清晰的实现,构建一个目录列表,然后迭代列表以附加“qwt- *”glob。