决定重建时忽略一些标志变化

Ignoring some flag changes when deciding to rebuild

我想要一个 C 定义来表示我的程序上次构建的时间戳。例如,像这样:

import time

bld.program (target = "foo",
             source = [ "src/foo.c" ],
             defines = [ time.strftime ('BUILD_TIMESTAMP="%Y/%m/%d %H:%M:%S"') ])

但我不希望在唯一改变的是时间戳时重新构建程序。使用 SCons,我可以使用 $($) 获得我想要的效果(在计算哈希值以决定是否必须重建某些内容时,忽略 $($) 之间的任何内容) . waf有没有类似的东西?

恐怕 waf 中没有像 $( $) 这样的东西。定义用于计算的哈希。在 waf 书的 §11.4.1 中有一个 date/time 包含在文件中的示例。这很棘手,因为您不仅要禁止对日期更改的处理,而且要确保每当另一个文件发生更改时重建包含信息的文件:)