【发布时间】:2021-05-14 07:43:01
【问题描述】:
我想把所有的头文件都安装在一个目录下。
我知道正则表达式可以做到这一点。但是我google了很多,没有找到如何将这三种文件包含在一起。
我使用这样的命令:
file(GLOB INFRA ${LOCAL_SRC_PATH}/infra/*.h[|p|x][|p|x])
使INFRA 变量保存所有头文件,但我发现它忽略了.h
我知道这很容易,你能帮忙吗?
【问题讨论】:
-
请注意,
file(GLOB)使用通配符,而不是常规。据我所知,选择运算符 (|) 不属于通配符语法。假设您有一个可能的扩展列表:set(headers_ext .h .hpp .hxx),您可以创建一个通配表达式列表来查找这些标头:list(TRANSFORM headers_ext PREPEND "${LOCAL_SRC_PATH}/infra/*" OUTPUT_VARIABLE headers_glob)并在通配命令中使用它:file(GLOB INFRA ${headers_ext})。 -
@Tsyvarev 谢谢,glob 与常规 expr 不同,明白了