123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- #! /usr/bin/env python
- # encoding: utf-8
- # Thomas Nagy, 2006-2010 (ita)
- VERSION='0.0.1'
- APPNAME='cc_test'
- top = '.'
- import waflib.Configure
- waflib.Configure.autoconfig = True
- def options(opt):
- opt.load('compiler_c')
- def configure(conf):
- conf.load('compiler_c')
- def build(bld):
- bld(rule='echo "int ko = $$RANDOM;" > ${TGT}', target='faa.h', always=True, shell=True, name='z2')
- bld.program(source='a.c main.c', target='foo', includes='.')
- # sort the tasks in reverse order to force the 'faa.h' creation in last position
- from waflib import Task, Errors, Logs
- old = Task.set_file_constraints
- def meth(lst):
- try:
- lst.sort(cmp=lambda x, y: cmp(x.__class__.__name__, y.__class__.__name__))
- except:
- lst.sort(key=lambda x: x.__class__.__name__) # python3
- old(lst)
- Task.set_file_constraints = meth
- def are_implicit_nodes_ready(self):
- """remove this method if/when the main one is enabled"""
- bld = self.generator.bld
- try:
- cache = bld.dct_implicit_nodes
- except:
- bld.dct_implicit_nodes = cache = {}
- try:
- dct = cache[bld.current_group]
- except KeyError:
- dct = cache[bld.current_group] = {}
- for tsk in bld.cur_tasks:
- for x in tsk.outputs:
- dct[x] = tsk
- modified = False
- for x in bld.node_deps.get(self.uid(), []):
- if x in dct:
- self.run_after.add(dct[x])
- modified = True
- if modified:
- for tsk in self.run_after:
- if not tsk.hasrun:
- Logs.warn('task %r is not ready...', self)
- raise Errors.TaskNotReady('not ready')
- Task.Task.are_implicit_nodes_ready = are_implicit_nodes_ready
|