我目前在使用 install() 时遇到问题cmake 的功能 v3.13.4 .我的代码如下:
install(
directory ${cmake_current_source_dir}
destination ${cmake_install_prefix}
files_matching pattern "*.cfg"
)
我的理解是,cmake 会将与此模式匹配的所有文件复制到我由 ${cmake_install_prefix} 给出的位置。 ,但我当前目录中的所有子文件夹也被复制。另外,如何将多个文件结束模式复制到目的地?简单地说*.cfg | *.xyz或 *.cfg || *.xyz不起作用。
也试过更换files_matching pattern和:
files_matching regex "[a-za-z0-9]*.ate|[a-za-z0-9]*.reserved"
只复制文件 *.reserved再次和所有文件夹。
最佳答案
如果您目录中的任何子文件夹也包含 .cfg文件,cmake 也会复制这些文件。您需要使用 exclude 明确告诉 cmake 忽略这些。指示。此外,您可以连接多个 pattern cmake 搜索和安装的指令:
install(
directory ${cmake_current_source_dir}
destination ${cmake_install_prefix}
files_matching
pattern "*.cfg"
pattern "*.xyz"
pattern "subfoldera" exclude
)