]> git.saurik.com Git - wxWidgets.git/blobdiff - wxPython/setup.py
Weekly catch-up
[wxWidgets.git] / wxPython / setup.py
index ecd5a4a8700ad86904451b01f78c33f04c06f0ef..7d6a2c6247bed303cb1f26c375db000b322f0847 100755 (executable)
@@ -13,12 +13,12 @@ from my_distutils import run_swig, contrib_copy_tree
 # flags and values that affect this script
 #----------------------------------------------------------------------
 
-VERSION          = "2.3.3pre4"
+VERSION          = "2.3.3pre8"
 DESCRIPTION      = "Cross platform GUI toolkit for Python"
 AUTHOR           = "Robin Dunn"
 AUTHOR_EMAIL     = "Robin Dunn <robin@alldunn.com>"
 URL              = "http://wxPython.org/"
-LICENCE          = "wxWindows (LGPL derivative)"
+LICENSE          = "wxWindows (LGPL derivative)"
 LONG_DESCRIPTION = """\
 wxPython is a GUI toolkit for Python that is a wrapper around the
 wxWindows C++ GUI library.  wxPython provides a large variety of
@@ -36,11 +36,11 @@ BUILD_GIZMOS = 1   # Build a module for the gizmos contrib library
 BUILD_DLLWIDGET = 1# Build a module that enables unknown wx widgets
                    # to be loaded from a DLL and to be used from Python.
 
-BUILD_IEWIN = 0    # Internet Explorer wrapper (experimental)
+                   # Internet Explorer wrapper (experimental)
+BUILD_IEWIN = (os.name == 'nt')
 
 CORE_ONLY = 0      # if true, don't build any of the above
 
-
 GL_ONLY = 0        # Only used when making the -gl RPM.  See the "b" script
                    # for the ugly details
 
@@ -64,6 +64,9 @@ UNDEF_NDEBUG = 1   # Python 2.2 on Unix/Linux by default defines NDEBUG,
                    # on then you end up with mismatched class structures,
                    # and wxPython will crash.
 
+NO_SCRIPTS = 0     # Don't install the tool scripts
+
+
 WX_CONFIG = "wx-config"    # Usually you shouldn't need to touch this,
                            # but you can set it to pass an alternate
                            # version of wx-config or alternate flags,
@@ -73,11 +76,11 @@ BUILD_BASE = "build"
 
 # Some MSW build settings
 
-FINAL = 1          # Mirrors use of same flag in wx makefiles,
+FINAL = 0          # Mirrors use of same flag in wx makefiles,
                    # (0 or 1 only) should probably find a way to
                    # autodetect this...
 
-HYBRID = 0         # If set and not debug or FINAL, then build a
+HYBRID = 1         # If set and not debug or FINAL, then build a
                    # hybrid extension that can be used by the
                    # non-debug version of python, but contains
                    # debugging symbols for wxWindows and wxPython.
@@ -137,8 +140,9 @@ if bcpp_compiling:
 
 # Boolean (int) flags
 for flag in ['BUILD_GLCANVAS', 'BUILD_OGL', 'BUILD_STC', 'BUILD_XRC',
-             'BUILD_GIZMOS', 'BUILD_DLLWIDGET',
-             'CORE_ONLY', 'USE_SWIG', 'IN_CVS_TREE', 'UNICODE', 'UNDEF_NDEBUG'
+             'BUILD_GIZMOS', 'BUILD_DLLWIDGET', 'BUILD_IEWIN',
+             'CORE_ONLY', 'USE_SWIG', 'IN_CVS_TREE', 'UNICODE',
+             'UNDEF_NDEBUG', 'NO_SCRIPTS',
              'FINAL', 'HYBRID', ]:
     for x in range(len(sys.argv)):
         if string.find(sys.argv[x], flag) == 0:
@@ -170,6 +174,7 @@ if CORE_ONLY:
     BUILD_XRC = 0
     BUILD_GIZMOS = 0
     BUILD_DLLWIDGET = 0
+    BUILD_IEWIN = 0
 
 
 if UNICODE and os.name != 'nt':
@@ -246,12 +251,12 @@ if os.name == 'nt':
     if not FINAL or HYBRID:
         defines.append( ('__WXDEBUG__', None) )
 
-    libdirs = [opj(WXDIR, 'lib'), 'build\\ilib']
+    libdirs = [ opj(WXDIR, 'lib') ]
     wxdll = 'wxmsw' + WXDLLVER + libFlag()
-    libs = [wxdll]
+    libs = [ wxdll ]
 
     if bcpp_compiling:
-        libs = ['wx'+WXBCPPLIBVER]
+        libs = [ 'wx'+WXBCPPLIBVER ]
 
     libs = libs + ['kernel32', 'user32', 'gdi32', 'comdlg32',
             'winspool', 'winmm', 'shell32', 'oldnames', 'comctl32',
@@ -259,27 +264,31 @@ if os.name == 'nt':
             'advapi32', 'wsock32']
 
 
-    cflags = [
+    cflags = [ '/Gy',
              # '/GX-'  # workaround for internal compiler error in MSVC on some machines
              ]
     lflags = None
 
 
-    if bcpp_compiling:  # overwrite it
+    if bcpp_compiling:  # BCC flags
         cflags = ['-5', '-VF',  ### To support MSVC spurious semicolons in the class scope
                   ### else, all semicolons at the end of all DECLARE_...CALLBACK... macros must be eliminated
                   '-Hc', '-H=' + opj(WXDIR, '\src\msw\wx32.csm'),
                   '@' + opj(WXDIR, '\src\msw\wxwin32.cfg')
                   ]
+        if not FINAL:
+            cflags = cflags + ['/Od', '/v', '/y']
+            lflags = lflags + ['/v', ]
 
+    else:  # MSVC flags
+        if FINAL:
+            pass #cflags = cflags + ['/O1']
+        elif HYBRID :
+            pass #cflags = cflags + ['/Ox']
+        else:
+            pass # cflags = cflags + ['/Od', '/Z7']
+                 # lflags = ['/DEBUG', ]
 
-    if not FINAL and HYBRID and not bcpp_compiling:
-        cflags = cflags + ['/Od', '/Z7']
-        lflags = ['/DEBUG', ]
-
-    elif bcpp_compiling and not FINAL:
-        cflags = cflags + ['/Od', '/v', '/y']
-        lflags = lflags + ['/v', ]
 
 
 
@@ -302,10 +311,14 @@ elif os.name == 'posix' and sys.platform[:6] == "darwin":
     cflags = string.split(cflags)
     if UNDEF_NDEBUG:
         cflags.append('-UNDEBUG')
+    if debug:
+        cflags.append('-g')
+        cflags.append('-O0')
 
     lflags = os.popen(WX_CONFIG + ' --libs', 'r').read()[:-1]
     lflags = string.split(lflags)
 
+    NO_SCRIPTS = 1
 
 
 elif os.name == 'posix':
@@ -328,6 +341,9 @@ elif os.name == 'posix':
     cflags = string.split(cflags)
     if UNDEF_NDEBUG:
         cflags.append('-UNDEBUG')
+    if debug:
+        cflags.append('-g')
+        cflags.append('-O0')
 
     lflags = os.popen(WX_CONFIG + ' --libs', 'r').read()[:-1]
     lflags = string.split(lflags)
@@ -383,7 +399,7 @@ if not GL_ONLY:
     copy_file('src/__version__.py', PKGDIR, update=1, verbose=0)
     copy_file('src/wxc.pyd.manifest', PKGDIR, update=1, verbose=0)
 
-    if IN_CVS_TREE:   # update the licence files
+    if IN_CVS_TREE:   # update the license files
         mkpath('licence')
         for file in ['preamble.txt', 'licence.txt', 'licendoc.txt', 'lgpl.txt']:
             copy_file(opj(WXDIR, 'docs', file), opj('licence',file), update=1, verbose=0)
@@ -467,6 +483,20 @@ if not GL_ONLY:
     wxpExtensions.append(ext)
 
 
+    # Extension for the wizard module
+    swig_sources = run_swig(['wizard.i'], 'src', GENDIR, PKGDIR,
+                            USE_SWIG, swig_force, swig_args, swig_deps)
+    ext = Extension('wizardc', swig_sources,
+                    include_dirs =  includes,
+                    define_macros = defines,
+                    library_dirs = libdirs,
+                    libraries = libs,
+                    extra_compile_args = cflags,
+                    extra_link_args = lflags,
+                    )
+    wxpExtensions.append(ext)
+
+
 #----------------------------------------------------------------------
 # Define the GLCanvas extension module
 #----------------------------------------------------------------------
@@ -686,6 +716,7 @@ if not GL_ONLY and BUILD_IEWIN:
 
 
     ext = Extension('iewinc', ['%s/IEHtmlWin.cpp' % location,
+                               '%s/wxactivex.cpp' % location,
                              ] + swig_sources,
 
                     include_dirs =  includes,
@@ -871,15 +902,25 @@ if not GL_ONLY and BUILD_DLLWIDGET:
 # Tools and scripts
 #----------------------------------------------------------------------
 
-TOOLS = [("wxPython/tools",        glob.glob("tools/*.py")),
-         ("wxPython/tools/XRCed",  glob.glob("tools/XRCed/*.py") +
-                                   glob.glob("tools/XRCed/*.xrc") +
-                                   ["tools/XRCed/CHANGES",
-                                    "tools/XRCed/TODO",
-                                    "tools/XRCed/README"]),
-         ]
+## TOOLS = [("wxPython/tools",        glob.glob("tools/*.py")),
+##          ("wxPython/tools/XRCed",  glob.glob("tools/XRCed/*.py") +
+##                                    glob.glob("tools/XRCed/*.xrc") +
+##                                    ["tools/XRCed/CHANGES",
+##                                     "tools/XRCed/TODO",
+##                                     "tools/XRCed/README"]),
+##          ]
 
 
+if NO_SCRIPTS:
+    SCRIPTS = None
+else:
+    SCRIPTS = [opj('scripts/img2png'),
+               opj('scripts/img2xpm'),
+               opj('scripts/img2py'),
+               opj('scripts/xrced'),
+               opj('scripts/pyshell'),
+               opj('scripts/pycrust'),
+               ]
 
 
 #----------------------------------------------------------------------
@@ -895,21 +936,24 @@ if __name__ == "__main__":
               author           = AUTHOR,
               author_email     = AUTHOR_EMAIL,
               url              = URL,
-              licence          = LICENCE,
+              license          = LICENSE,
 
               packages = [PKGDIR,
                           PKGDIR+'.lib',
                           PKGDIR+'.lib.editor',
                           PKGDIR+'.lib.mixins',
                           PKGDIR+'.lib.PyCrust',
+                          PKGDIR+'.tools',
+                          PKGDIR+'.tools.XRCed',
                           ],
 
               ext_package = PKGDIR,
               ext_modules = wxpExtensions,
 
-              options = { 'build' : { 'build_base' : BUILD_BASE }}
+              options = { 'build' : { 'build_base' : BUILD_BASE }},
 
               ##data_files = TOOLS,
+              scripts = SCRIPTS,
               )
 
     else:
@@ -920,7 +964,7 @@ if __name__ == "__main__":
               author           = AUTHOR,
               author_email     = AUTHOR_EMAIL,
               url              = URL,
-              licence          = LICENCE,
+              license          = LICENSE,
 
               py_modules = [ "wxPython.glcanvas" ],