我有一个目标,需要一些耗时的行动,并且取决于类似的耗时的目标。它也是一个虚假的目标,所以它不依赖于源文件,也不会产生文件。我想让SCons根据一些抽象值来决定何时构建这个目标。
对我来说,最好使用SCons的功能,described in the manual为:
Value(value, [built_value]) , env.Value(value, [built_value])
...值节点可以用作目标的依赖关系。如果在SCons运行之间调用str(value)的结果发生更改,则将重建依赖于Value(值)的任何目标。 ...
所以我构建了这个SConstruct来测试它:
import random as rnd
env = Environment()
def action(**_):
print('Do crazy things')
input = env.Value('a')
env['BUILDERS']['Custom'] = Builder(action=action)
env.Custom(target='target', source=input)
env.Pseudo('target')
我希望SCons在第一次构建后停止重建目标,因为输入值的值在构建之间保持不变。但SCons每次都会重建它。
有没有办法实现我所说的?