X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/2458faeb60f3d66a1fa462924eb3af59104a6cfc..9c9691ba241768af0cc050e021c8323b7d16fe5a:/wxPython/config.py diff --git a/wxPython/config.py b/wxPython/config.py index 09a8e0e3fe..09e89eaf53 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): @@ -713,6 +725,9 @@ if os.name == 'nt': if not FINAL or HYBRID: defines.append( ('__WXDEBUG__', None) ) + if UNICODE: + defines.append( ('wxUSE_UNICODE', 1) ) + libdirs = [ opj(WXDIR, 'lib', 'vc_dll') ] if MONOLITHIC: libs = makeLibName('') @@ -880,6 +895,15 @@ 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', + ] if UNICODE: swig_args.append('-DwxUSE_UNICODE')