wscript (877B)
1 #! /usr/bin/env python 2 # coding: utf-8 3 4 def options(opt): 5 opt.load('compiler_c') 6 def configure(cnf): 7 cnf.load('compiler_c') 8 def build(bld): 9 from waflib import Build 10 bld.post_mode = Build.POST_LAZY 11 12 def create_files(tsk): 13 out = tsk.generator.path.make_node('generated') 14 from waflib import Utils 15 for x in out.ant_glob('*.c'): 16 x.delete() 17 import random 18 for x in range(2): 19 num = random.randint(0, 2**31) 20 k = out.make_node('test%d.c' % num) 21 k.write('int k%d = %d;' % (num, num)) 22 bld(rule=create_files, source='wscript', name='codegen') 23 24 bld.add_group() 25 26 bld.program(features='find_them', source=['main.c'], target='app') 27 28 from waflib.TaskGen import feature, before 29 from waflib import Utils 30 @feature('find_them') 31 @before('process_source') 32 def list_the_source_files(self): 33 self.source = Utils.to_list(self.source) + self.path.ant_glob('generated/*.c') 34 35