Cmake:仅安装正则表达式匹配目录

时间:2018-12-13 09:27:35

标签: cmake

我具有src的目录结构,如下所示:

src/abc1/...
src/abc22/...
src/abc3333/...
src/def1/...
src/def22/...
src/def333/...

在这里,我只想安装src/abc1src/abc22src/abc33。我使用以下命令:

install(DIRECTORY src DESTINATION include/myproj
        REGEX "abc.*")

但这不起作用

1 个答案:

答案 0 :(得分:2)

引用documentation

  

默认情况下,所有文件和目录都会被安装,无论它们是否匹配。可以在第一个match选项之前使用FILES_MATCHING选项,以禁止安装任何表达式都不匹配的文件(而不是目录)。例如,代码

install(DIRECTORY src/ DESTINATION include/myproj
    FILES_MATCHING PATTERN "*.h")
     

将从源树中提取并安装头文件。

因此,要针对您的情况进行翻译,您需要执行以下操作:

install(DIRECTORY src DESTINATION include/myproj
        FILES_MATCHING REGEX "abc")