CMake命令行工具支持copy
和copy_if_different
:
- https://cmake.org/cmake/help/v3.26/manual/cmake.1.html#cmdoption-cmake-E-arg-copy
copy_if_different
几乎总是比较慢,因为它必须读取源文件和目标文件,比较它们,然后在内容不相等的情况下复制。
另一方面,copy
总是只执行复制部分。这比基于文件时间戳跳过副本要慢。不过,它比copy_if_different
快得多。
什么时候应该使用copy
,什么时候应该使用copy_if_different
?
1条答案
按热度按时间8gsdolmq1#
如果复制文件的时间戳是相关的,则使用
copy_if_different
,否则使用copy
。例如,如果您正在复制的内容在另一个自定义命令的
DEPENDS
参数中提到,则无条件复制这些文件也会触发另一个自定义命令的重新构建,因为复制的时间戳将更新。copy_if_different
不会发生这种情况,因为如果没有更改,目标文件将不会更新。