假设我的项目中有下一个结构:
src_dir\a
src_dir\b\b2
src_dir\c\c2\c3
在每个文件夹中我都有几种类型的文件(.txt,.lib,.dll ....) 我想只在目录X中安装dll文件,所以我尝试了:
install(
DIRECTORY src_dir
DESTINATION X/
COMPONENT DLLS
FILES_MATCHING PATTERN "*.dll"
)
它确实工作正常,但它给了我原始结构的完整结构(我只想要X目录中的dll文件)。输出它:
X/a/a.dll
X/b/b2/b.dll
X/c/c2/c3/c.dll
我希望它像a.dll,b.dll和c.dll将在X中(没有任何子文件夹)。
有没有办法在不提供项目中每个dll文件的完整路径的情况下执行此操作?
谢谢:)
答案 0 :(得分:0)
您应该能够通过列出每个目录来获得所需的行为,而不一定是每个DLL。如果在DIRECTORY的末尾包含尾部正斜杠,则在复制到目标时将忽略目录名称。我期待以下类似的东西来实现你想要的东西:
install(
DIRECTORY src_dir/a/
DESTINATION X
COMPONENT DLLS
FILES_MATCHING PATTERN "*.dll"
)
install(
DIRECTORY src_dir/b/b2/
DESTINATION X
COMPONENT DLLS
FILES_MATCHING PATTERN "*.dll"
)
install(
DIRECTORY src_dir/c/c2/c3/
DESTINATION X
COMPONENT DLLS
FILES_MATCHING PATTERN "*.dll"
)