#! /usr/bin/env python # encoding: utf-8 # Gustavo Carneiro, 2007 import sys VERSION='0.0.1' APPNAME='python_test' top = '.' out = 'build' def options(opt): opt.load('python') # options for disabling pyc or pyo compilation opt.load('compiler_c') def configure(conf): conf.load('compiler_c') conf.load('python') conf.check_python_version((2,4,2)) conf.check_python_headers() conf.check_python_module('os') conf.check_python_module('re', condition="ver > num(2,0,4) and ver <= num(2,3,0)") try: conf.check_python_module('pygccxml') except conf.errors.ConfigurationError: print('could not find pygccxml (ignored)') def build(bld): # first compile a few pyc and pyo files (set install_path=None to disable the installation, # by default install_path is set to ${PYTHONDIR}) bld(features='py', source=bld.path.ant_glob('*.py'), install_from='.') # example for generated python files from waflib import Utils if not Utils.is_win32: target = bld.path.find_or_declare('abc.py') bld(rule='touch ${TGT}', source='wscript', target=target) bld(features='py', source=[target], install_from=target.parent) # then a c extension module bld( features = 'c cshlib pyext', source = 'spammodule.c', target = 'spam') # then a c program bld( features = 'c cprogram pyembed', source = 'test.c', target = 'test') # Install files keeping their directory structure (default: relative_trick=True) # # This will create: # * lib/python2.7/site-packages/nested_scripts/foo/nested_foo.py bld(features='py', source=bld.path.ant_glob('nested_scripts/foo/*.py'), install_from='.') # Install files flatting the directory structure (relative_trick=False) # # This will create: # * lib/python2.7/site-packages/nested_bar.py bld(features='py', source=bld.path.ant_glob('nested_scripts/bar/*.py'), relative_trick=False, install_from='.')