1
我在cmake中遇到了install(DIRECTORY
FILE_MATCHING问题。我想获取所有文件扩展名为*.h
或没有文件扩展名的文件。我使用了下面的代码,这是行不通的,因为看起来每个PATTERN
都是用OR(布尔操作)计算的,*
是每个文件的通配符,因此每个文件都被复制。CMake:安装(DIRECTORY)和不带扩展名的文件
install(DIRECTORY mydir
DESTINATION .
FILE_MATCHING
PATTERN "*.h"
PATTERN "*"
有没有人知道我可以如何过滤该场景?
THX。这样可行。 2分钟后,我的第一篇文章发现了REGEX命令,但我试图找到正确的表达式。你的工作正常,但令我感到恼火的是,我的正则表达式在regexr.com和regex101.com上工作,但不在cmake =>“^ [^。] + $”中,你知道为什么我的正则表达式在cmake中不起作用,/cmake正则表达式中的/特别吗? – tonka
在CMake中,* PATTERN *仅应用于路径的最后一个组件*(即没有目录),但* REGEX *应用于**完整路径**。从'documentation'(https://cmake.org/cmake/help/v3.7/command/install.html)的'install'命令:“REGEX'将匹配完整路径的任何部分,但它可以使用'/'和'$'来模拟'PATTERN'行为。“ – Tsyvarev
很高兴知道。 Thx – tonka