CMake文件GLOB_RECURSE与复杂的GLOB



我想按如下方式使用file(GLOB_RECURSE...

file(GLOB_RECURSE _tmp_files
LIST_DIRECTORIES false
"${mydir}/*.cpp|${mydir}/*.h")

这与${mydir}/*{.cpp,.h}等变体一起产生了一个空列表。然而,这正如预期的那样工作——生成${mydir}中的所有*.cpp文件及其子目录:

file(GLOB_RECURSE _tmp_files
LIST_DIRECTORIES false
"${mydir}/*.cpp")

那么,CMake中的file(特性是否确实支持";"满";地球仪?特别是,如何使用file(为模式{*.cpp,*.h}进行glob?

那么,CMake中的文件(功能(确实支持"完整"globbing吗?

是。

你的表达方式与你期望的不一样。{..,..}不是glob中多个后缀的匹配方式,{,}是字面上匹配的,在glob没有特殊意义。"${mydir}/*.cpp|${mydir}/*.h"在glob中不是OR——|是字面上匹配的,它在glop中没有特殊意义。参见man 7 glob

如何使用文件(?(为模式{.cpp,.h}进行glob

写两次。

file(GLOB_RECURSE _tmp_files
LIST_DIRECTORIES false
${mydir}/*.cpp
${mydir}/*.h
)

最新更新