如何解决强制执行 CMake 安装指令
我有一个 CMakeLists.txt,我在其中按特定顺序复制文件,但执行顺序似乎是随机的:
#First Installation
install(DIRECTORY ${SIT_AW_FirsT_WORKSPACE_DIR}/ DESTINATION ${WS_DESTINATION_DIR})
#Second Installation that should overwrite a subset of files
install(DIRECTORY ${SIT_AW_SECOND_WORKSPACE_DIR}/ DESTINATION ${WS_DESTINATION_DIR})
Output :
-- Installing: /opt/FOO/share/baz/xml/Login.xml
-- Up-to-date: /opt/FOO/share/baz/xml/Login.xml
第二个文件不会覆盖第一个文件,因为它们具有相同的时间戳和相同的名称,但它们的大小不同。有没有办法强制复制?
解决方法
我认为通过使用 PATTERN 和 EXCLUDE 选项而不是尝试用另一个文件覆盖一个文件,您可能会取得更好的成功。你可以试试这样的:
#First Installation
install(DIRECTORY ${SIT_AW_FIRST_WORKSPACE_DIR}/ DESTINATION ${WS_DESTINATION_DIR}
PATTERN "Login.xml" EXCLUDE)
#Second Installation that should overwrite a subset of files
install(DIRECTORY ${SIT_AW_SECOND_WORKSPACE_DIR}/ DESTINATION ${WS_DESTINATION_DIR})
您可以在此处阅读 CMake 文档以及此处的详细信息:https://cmake.org/cmake/help/v3.18/command/install.html#installing-directories
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。