#! /usr/bin/env python bld.shlib( #packages = 'gtk+-2.0', features = 'c cshlib', target = 'hello-world', #uselib = 'GTK GLIB', source = 'hello.vala', gir = 'hello-1.0', #gir_path = '/tmp', #vapi_path = '/tmp', pkg_name = 'hello' ) bld(features = 'c cstlib foreign_generator', # be specific source = '', # no source files target = 'hello-world', # this is for the file name name = 'hello-world-static', # and this is when you want to reuse from wscript files srcgen = 'hello-world', use = 'GTK GLIB', # mandatory here ) # --- support code for 'foreign_generator' above --- from waflib import TaskGen @TaskGen.feature('foreign_generator') @TaskGen.before('apply_link') def call_me_static(self): for x in self.to_list(getattr(self, 'srcgen')): tg = self.bld.get_tgen_by_name(x) if not tg: self.bld.fatal('No task generator by the name %r' % x) tg.post() # required by "waf clean build --target=hello-world-static" for tsk in tg.tasks: for out in tsk.outputs: if out.name.endswith('.c'): self.create_compiled_task('c', out) if not self.compiled_tasks: self.fatal('No source file for %r? this is unexpected' % self.name)