X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/c6abf0ef4d5e5783034dc4b892ced3f6806ce716..20a4311e7f44f98b945cc762b5f0d41b6c0e82be:/wxPython/config.py diff --git a/wxPython/config.py b/wxPython/config.py index d08949daf4..0188ea6fd0 100644 --- a/wxPython/config.py +++ b/wxPython/config.py @@ -434,6 +434,18 @@ def run_swig(files, dir, gendir, package, USE_SWIG, force, swig_args, return sources +def swig_version(): + # It may come on either stdout or stderr, depending on the + # version, so read both. + i, o, e = os.popen3(SWIG + ' -version', 't') + stext = o.read() + e.read() + import re + match = re.search(r'[0-9]+\.[0-9]+\.[0-9]+$', stext, re.MULTILINE) + if not match: + raise 'NotFound' + SVER = match.group(0) + return SVER + # Specializations of some distutils command classes class wx_smart_install_data(distutils.command.install_data.install_data): @@ -883,6 +895,16 @@ swig_args = ['-c++', '-modern', '-D'+WXPLAT, ] + i_files_includes + +if USE_SWIG: + SVER = swig_version() + if int(SVER[-2:]) >= 29: + swig_args += [ '-fastdispatch', + '-fvirtual', + '-fastinit', + '-fastunpack', + #'-outputtuple', Currently setting this with a -D define above + ] if UNICODE: swig_args.append('-DwxUSE_UNICODE')