## -*- python -*- import Action import Object import Params import Task def build(bld): bindgen = bld.create_obj('command-output') bindgen.stdout = 'foomodule.cc' bindgen.argv = [bindgen.input_file('foomodulegen.py')] bindgen.command = 'python' bindgen.command_is_external = True bindgen.prio = 3 # must run after the 'py' objects in ../pybindgen obj = bld.create_obj('cpp', 'shlib', 'pyext') obj.source = [ 'foo.cc', 'foomodule.cc' ] obj.target = 'foo' obj.install_var = 0 # do not install ## Workaround a WAF bug (http://code.google.com/p/waf/issues/detail?id=37) obj.env.append_value("CPPPATH", bld.m_curdirnode.srcpath(obj.env)) if bld.env()['ENABLE_PYGCCXML']: ### Same thing, but using gccxml autoscanning bindgen = bld.create_obj('command-output') bindgen.stdout = 'foomodule2.cc' bindgen.argv = [bindgen.input_file('foomodulegen-auto.py'), bindgen.input_file('foo.h')] bindgen.command = 'python' bindgen.command_is_external = True bindgen.prio = 3 # must run after the 'py' objects in ../pybindgen obj = bld.create_obj('cpp', 'shlib', 'pyext') obj.source = [ 'foo.cc', 'foomodule2.cc' ] obj.target = 'foo2' obj.install_var = 0 # do not install ## Workaround a WAF bug (http://code.google.com/p/waf/issues/detail?id=37) obj.env.append_value("CPPPATH", bld.m_curdirnode.srcpath(obj.env))