【发布时间】:2012-01-03 21:29:54
【问题描述】:
我有一个 Python 中的 C++ 代码生成器,可以生成许多源文件。大多数时候,只有一个文件发生了变化,但是由于生成器重新生成了所有文件,所以它们都被重新构建了。有没有办法让 Python 不覆盖文件,或者让 cmak 使用校验和来查看需要重建的内容,而不仅仅是使用文件日期?
我在想这样的事情在 Python 中会很容易:如果我可以替换
with open('blah', 'w') as f:
用这个:
with open_but_only_overwrite_if_total_output_is_different('blah', 'w') as f:
有什么好的方法可以做到这一点?
【问题讨论】:
-
您是在询问 cmake 或 Python 是否可以确定是否应该在 Python 脚本中生成代码之前覆盖文件?
-
不,他问的是在这种情况下是否可以避免更改文件的修改日期,因为如果修改日期发生变化,构建系统(CMake)将重建文件,从而使构建时间更长.