X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/c6abf0ef4d5e5783034dc4b892ced3f6806ce716..617bfeecfeeaecec2443d10545879d114c4dff0d:/wxPython/config.py diff --git a/wxPython/config.py b/wxPython/config.py index d08949daf4..c25ce4f35d 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') @@ -1029,7 +1051,6 @@ class BuildRenamers: # do a depth first iteration over what's left for node in topnode: doRename = False - doPtr = False addWX = False revOnly = False @@ -1038,7 +1059,6 @@ class BuildRenamers: lastClassName = name = self.GetAttr(node, "name") lastClassSymName = sym_name = self.GetAttr(node, "sym_name") doRename = True - doPtr = True if sym_name != name: name = sym_name addWX = True @@ -1096,8 +1116,6 @@ class BuildRenamers: if addWX and not old.startswith('wx'): old = 'wx'+old pyFile.write("%s = wx.%s.%s\n" % (old, modname, new)) - if doPtr: - pyFile.write("%sPtr = wx.%s.%sPtr\n" % (old, modname, new)) #---------------------------------------------------------------------------