Add the -templatereduce option to swig to prepare for more templates.
remove the old scanner and replace it with ours instead of just adding ours, this fixes some issues with dependency tracking. --HG-- extra : convert_revision : 925d42ad024deaea48a243067d0ea9542aeba324
This commit is contained in:
parent
961f8382f6
commit
cd46796d5c
1 changed files with 19 additions and 6 deletions
25
SConstruct
25
SConstruct
|
@ -270,16 +270,29 @@ if compare_versions(swig_version[2], min_swig_version) < 0:
|
|||
Exit(1)
|
||||
|
||||
# Set up SWIG flags & scanner
|
||||
env.Append(SWIGFLAGS=Split('-c++ -python -modern $_CPPINCFLAGS'))
|
||||
swig_flags=Split('-c++ -python -modern -templatereduce $_CPPINCFLAGS')
|
||||
env.Append(SWIGFLAGS=swig_flags)
|
||||
|
||||
import SCons.Scanner
|
||||
# filter out all existing swig scanners, they mess up the dependency
|
||||
# stuff for some reason
|
||||
scanners = []
|
||||
for scanner in env['SCANNERS']:
|
||||
skeys = scanner.skeys
|
||||
if skeys == '.i':
|
||||
continue
|
||||
|
||||
if isinstance(skeys, (list, tuple)) and '.i' in skeys:
|
||||
continue
|
||||
|
||||
scanners.append(scanner)
|
||||
|
||||
# add the new swig scanner that we like better
|
||||
from SCons.Scanner import ClassicCPP as CPPScanner
|
||||
swig_inc_re = '^[ \t]*[%,#][ \t]*(?:include|import)[ \t]*(<|")([^>"]+)(>|")'
|
||||
scanners.append(CPPScanner("SwigScan", [ ".i" ], "CPPPATH", swig_inc_re))
|
||||
|
||||
swig_scanner = SCons.Scanner.ClassicCPP("SwigScan", ".i", "CPPPATH",
|
||||
swig_inc_re)
|
||||
|
||||
env.Append(SCANNERS = swig_scanner)
|
||||
# replace the scanners list that has what we want
|
||||
env['SCANNERS'] = scanners
|
||||
|
||||
# Platform-specific configuration. Note again that we assume that all
|
||||
# builds under a given build root run on the same host platform.
|
||||
|
|
Loading…
Reference in a new issue