mirror of
https://gitlab.com/ita1024/waf.git
synced 2024-11-21 17:35:55 +01:00
6ec62d9bbf
Python distutils add the GX flag by default but that was for very old systems and ./Lib/distutils/msvccompiler.py was removed in Python 3.12
71 lines
1.8 KiB
Python
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='.')
|