如何使用 CMake 将多个文件列表合并在一起?
我有一个使用 CMake 构建的项目,需要将一些资源复制到目标文件夹。目前我使用此代码:
file(GLOB files "path/to/files/*")
foreach(file ${files})
ADD_CUSTOM_COMMAND(
TARGET MyProject
POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy "${file}" "${CMAKE_BINARY_DIR}/Debug"
)
endforeach()
现在我想从不同的文件夹复制更多文件。因此,我们希望将 path/to/files
和 path/to/files2
中的文件复制到二进制文件夹中的同一位置。一种方法是复制上面的代码,但似乎没有必要复制冗长的自定义命令。
有没有一种简单的方法可以使用 file
(也可能使用 list
命令)来连接两个 GLOB
列表?
I have a project built with CMake that needs to copy some resources to the destination folder. Currently I use this code:
file(GLOB files "path/to/files/*")
foreach(file ${files})
ADD_CUSTOM_COMMAND(
TARGET MyProject
POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy "${file}" "${CMAKE_BINARY_DIR}/Debug"
)
endforeach()
Now I want to copy more files from a different folder. So we want to copy files from both path/to/files
and path/to/files2
to the same place in the binary folder. One way would be to just duplicate the above code, but it seems unnecessary to duplicate the lengthy custom command.
Is there an easy way to use file
(and possibly the list
command as well) to concatenate two GLOB
lists?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
文件(GLOB ...)
命令允许指定多个通配表达式:或者,使用
列表(附加...)
合并列表的子命令,例如:The
file (GLOB ...)
command allows for specifying multiple globbing expressions:Alternatively, use the
list (APPEND ...)
sub-command to merge lists, e.g.:我将为每个模式构建一个列表,然后连接这些列表:
I'd construct a list for each of the patterns and then concatenate the lists: