具有复杂 glob 的 CMake 文件 GLOB_RECURSE
CMake file GLOB_RECURSE with complex globs
我想按如下方式使用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}
So, does the file( feature in CMake indeed support "full" globbing?
是的。
您的表达方式与您期望的不同。 {..,..}
不是glob中匹配多个后缀的方式,{
,
}
是字面匹配,在glob中没有特殊含义。 "${mydir}/*.cpp|${mydir}/*.h"
不是 glob 中的 OR - |
是字面匹配,它在 glob 中没有特殊含义。参见 man 7 glob
。
how to glob for a pattern {.cpp,.h} using file(?
写两遍
file(GLOB_RECURSE _tmp_files
LIST_DIRECTORIES false
${mydir}/*.cpp
${mydir}/*.h
)
我想按如下方式使用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}
So, does the file( feature in CMake indeed support "full" globbing?
是的。
您的表达方式与您期望的不同。 {..,..}
不是glob中匹配多个后缀的方式,{
,
}
是字面匹配,在glob中没有特殊含义。 "${mydir}/*.cpp|${mydir}/*.h"
不是 glob 中的 OR - |
是字面匹配,它在 glob 中没有特殊含义。参见 man 7 glob
。
how to glob for a pattern {.cpp,.h} using file(?
写两遍
file(GLOB_RECURSE _tmp_files
LIST_DIRECTORIES false
${mydir}/*.cpp
${mydir}/*.h
)