1
如何从另一个调用不同任务类的任务中启动任务。waf在执行任务中创建任务
@feature('unites')
@after_method('apply_link')
def make_test_unites(self):
if getattr(self, 'link_task', None):
tsk = self.create_task('unites', self.link_task.outputs)
tsk.a = []
@feature('gtester')
@after_method('apply_link')
def make_test_gtester(self):
if getattr(self, 'link_task', None):
tsk = self.create_task('gtester', self.link_task.outputs)
class unites (Task.Task):
def runnable_status(self):
### print("Never reached!")
...
def run(self):
...
### print("Never reached!")
...
class gtester (Task.Task):
def runnable_status(self):
//works as expected
def run(self):
...
bld = self.generator.bld
...
#utask = unites(env=bld.env)
utask = self.generator.create_task ('unites')
assert (utask)
utask.set_inputs(self.generator.link_task.outputs)
utask.a = ["some foo extra stuff"]
#bld.add_to_group (utask)
### print ("this is definitily reached")
因此,代码不会崩溃,但是当我使用./waf --zones=task_gen,tasks
我得到的是一个任务,为gtester
,但没有为unites
。
这是它是如何在实践中使用:
test = bld.program(
features = ['c', 'glib2', 'gtester'],
...,
...
)
有过深入探讨the waf book和API文档,但也没有得到任何有用的东西。
那么如何从一个已经运行的任务中调度一个任务(或者任意数量的任务)呢?