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文檔,但也沒有得到任何有用的東西。
那麼如何從一個已經運行的任務中調度一個任務(或者任意數量的任務)呢?