2
0
mirror of https://gitlab.com/ita1024/waf.git synced 2024-11-22 01:46:15 +01:00
waf/demos/python/wscript
Waf Project 6ec62d9bbf Disable GX warnings when buildin Python modules with Microsoft Visual Studio
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
2024-10-28 23:35:33 +08:00

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