安装除CMake中文件夹以外的目录中的所有文件

cai*_*aiy 2 cmake

我想在名为scfg的文件夹下安装所有文件,其中包含.cfg,.xml文件和文件夹到另一个包含scfg的位置.下面的代码安装正确.

file(GLOB config_files "scfg/*.cfg")
install(FILES ${config_files} DESTINATION scfg)
file(GLOB xml_files "scfg/*.xml")
install(FILES ${xml_files} DESTINATION scfg)
Run Code Online (Sandbox Code Playgroud)

但是将来可能会有更多类型不同于.cfg和.xml的文件.为了防止经常更改此文件,我正在寻找更通用的解决方案,例如安装除文件夹之外的所有文件类型.我听说过EXCLUDE关键字.但我不知道我应该为文件夹使用什么PATTERN.

cai*_*aiy 6

它应该显式排除子目录,然后像往常一样正确安装所有其他文件.

install(DIRECTORY scfg/ DESTINATION scfg
    PATTERN "scfg/config/" EXCLUDE
    PATTERN "scfg/xml/" EXCLUDE
)
Run Code Online (Sandbox Code Playgroud)