You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
waf/demos/python/wscript

71 lines
1.8 KiB
Python

#! /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='.')