]> git.saurik.com Git - wxWidgets.git/blobdiff - wxPython/config.py
wxTinderbox warning fix.
[wxWidgets.git] / wxPython / config.py
index 1f6d7242abdec833e2f033729c3511c72fcc8563..09e89eaf53d6c99fd5f0231674e35d6a012f64c9 100644 (file)
@@ -155,12 +155,12 @@ WX_CONFIG = None   # Usually you shouldn't need to touch this, but you can set
 
 SYS_WX_CONFIG = None # When installing an in tree build, setup.py uses wx-config
                      # for two different purposes.  First, to determine the prefix
-                    # where files will be installed, and secondly, to initialise
-                    # build_options.py with the correct options for it.
-                    # WX_CONFIG is used for the first task.  SYS_WX_CONFIG may
-                    # be set independently, to the value that should appear in
-                    # build_options.py, if it is different to that.  The default
-                    # is to use the value of WX_CONFIG.
+                     # where files will be installed, and secondly, to initialise
+                     # build_options.py with the correct options for it.
+                     # WX_CONFIG is used for the first task.  SYS_WX_CONFIG may
+                     # be set independently, to the value that should appear in
+                     # build_options.py, if it is different to that.  The default
+                     # is to use the value of WX_CONFIG.
 
 WXPORT = 'gtk2'    # On Linux/Unix there are several ports of wxWidgets available.
                    # Setting this value lets you select which will be used for
@@ -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')