273c273,274
< env.Append(SWIGFLAGS=Split('-c++ -python -modern $_CPPINCFLAGS'))
---
> swig_flags=Split('-c++ -python -modern -templatereduce $_CPPINCFLAGS')
> env.Append(SWIGFLAGS=swig_flags)
275c276,285
< 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
276a287,290
> scanners.append(scanner)
>
> # add the new swig scanner that we like better
> from SCons.Scanner import ClassicCPP as CPPScanner
277a292
> scanners.append(CPPScanner("SwigScan", [ ".i" ], "CPPPATH", swig_inc_re))
279,280c294,295
< swig_scanner = SCons.Scanner.ClassicCPP("SwigScan", ".i", "CPPPATH",
< swig_inc_re)
---
> # replace the scanners list that has what we want
> env['SCANNERS'] = scanners
282,283d296
< env.Append(SCANNERS = swig_scanner)
<