如何为虚假目标自定义构建决策逻辑,不涉及文件

时间:2016-03-15 21:41:12

标签: python scons

我有一个目标,需要一些耗时的行动,并且取决于类似的耗时的目标。它也是一个虚假的目标,所以它不依赖于源文件,也不会产生文件。我想让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每次都会重建它。

有没有办法实现我所说的?

0 个答案:

没有答案