X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/1e7ecb7be084f5815051682b2a5809090ebb2706..a7642be106b7d31cb7eb7b55ef74ec4072dce3a2:/wxPython/setup.py diff --git a/wxPython/setup.py b/wxPython/setup.py index 64f8b24969..fd12fe6f94 100755 --- a/wxPython/setup.py +++ b/wxPython/setup.py @@ -13,7 +13,7 @@ from my_distutils import run_swig, contrib_copy_tree # flags and values that affect this script #---------------------------------------------------------------------- -VERSION = "2.3b2" +VERSION = "2.3b3" DESCRIPTION = "Cross platform GUI toolkit for Python" AUTHOR = "Robin Dunn" AUTHOR_EMAIL = "robin@alldunn.com" @@ -22,7 +22,7 @@ LICENCE = "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 -window types and controls, all imlemented with a native look and +window types and controls, all implemented with a native look and feel (and native runtime speed) on the platforms it is supported on. """ @@ -32,6 +32,8 @@ BUILD_GLCANVAS = 1 # If true, build the contrib/glcanvas extension module BUILD_OGL = 1 # If true, build the contrib/ogl extension module BUILD_STC = 1 # If true, build the contrib/stc extension module 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 USE_SWIG = 0 # Should we actually execute SWIG, or just use the # files already in the distribution? @@ -40,6 +42,10 @@ IN_CVS_TREE = 0 # Set to true if building in a full wxWindows CVS # tree, otherwise will assume all needed files are # available in the wxPython source distribution +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, + # eg. as required by the .deb in-tree build. # Some MSW build settings @@ -73,8 +79,7 @@ debug = '--debug' in sys.argv or '-g' in sys.argv #---------------------------------------------------------------------- for flag in ['BUILD_GLCANVAS', 'BUILD_OGL', 'BUILD_STC', 'CORE_ONLY', - 'USE_SWIG', 'IN_CVS_TREE', 'FINAL', 'HYBRID', - 'WXDLLVER', ]: + 'USE_SWIG', 'IN_CVS_TREE', 'FINAL', 'HYBRID', ]: for x in range(len(sys.argv)): if string.find(sys.argv[x], flag) == 0: pos = string.find(sys.argv[x], '=') + 1 @@ -82,6 +87,14 @@ for flag in ['BUILD_GLCANVAS', 'BUILD_OGL', 'BUILD_STC', 'CORE_ONLY', vars()[flag] = eval(sys.argv[x][pos:]) sys.argv[x] = '' +for option in ['WX_CONFIG', 'WXDLLVER', ]: + for x in range(len(sys.argv)): + if string.find(sys.argv[x], option) == 0: + pos = string.find(sys.argv[x], '=') + 1 + if pos > 0: + vars()[option] = sys.argv[x][pos:] + sys.argv[x] = '' + sys.argv = filter(None, sys.argv) @@ -170,11 +183,11 @@ elif os.name == 'posix': libdirs = [] libs = [] - cflags = os.popen('wx-config --cflags', 'r').read()[:-1] + ' ' + \ + cflags = os.popen(WX_CONFIG + ' --cflags', 'r').read()[:-1] + ' ' + \ os.popen('gtk-config --cflags', 'r').read()[:-1] cflags = string.split(cflags) - lflags = os.popen('wx-config --libs', 'r').read()[:-1] + lflags = os.popen(WX_CONFIG + ' --libs', 'r').read()[:-1] lflags = string.split(lflags) @@ -189,123 +202,132 @@ else: if IN_CVS_TREE and newer('setup.py', 'src/__version__.py'): open('src/__version__.py', 'w').write("ver = '%s'\n" % VERSION) + + #---------------------------------------------------------------------- -# Define the CORE extension module +# SWIG defaults #---------------------------------------------------------------------- -print 'Preparing CORE...' swig_force = force swig_args = ['-c++', '-shadow', '-python', '-keyword', '-dnone', #'-dascii', '-I./src', '-D'+WXPLAT] swig_deps = ['src/my_typemaps.i'] -swig_files = [ 'wx.i', 'windows.i', 'windows2.i', 'windows3.i', 'events.i', - 'misc.i', 'misc2.i', 'gdi.i', 'mdi.i', 'controls.i', - 'controls2.i', 'cmndlgs.i', 'stattool.i', 'frames.i', 'image.i', - 'printfw.i', 'sizers.i', 'clip_dnd.i', - 'filesys.i', 'streams.i', -# 'grid.i', 'html.i', 'htmlhelp.i', 'calendar.i', 'utils.i', - ] -swig_sources = run_swig(swig_files, 'src', GENDIR, PKGDIR, - USE_SWIG, swig_force, swig_args, swig_deps) +#---------------------------------------------------------------------- +# Define the CORE extension module +#---------------------------------------------------------------------- + +if not GL_ONLY: + print 'Preparing CORE...' + swig_files = [ 'wx.i', 'windows.i', 'windows2.i', 'windows3.i', 'events.i', + 'misc.i', 'misc2.i', 'gdi.i', 'mdi.i', 'controls.i', + 'controls2.i', 'cmndlgs.i', 'stattool.i', 'frames.i', 'image.i', + 'printfw.i', 'sizers.i', 'clip_dnd.i', + 'filesys.i', 'streams.i', + ##'grid.i', 'html.i', 'htmlhelp.i', 'calendar.i', 'utils.i', + ] -copy_file('src/__init__.py', PKGDIR, update=1, verbose=0) -copy_file('src/__version__.py', PKGDIR, update=1, verbose=0) + swig_sources = run_swig(swig_files, 'src', GENDIR, PKGDIR, + USE_SWIG, swig_force, swig_args, swig_deps) + copy_file('src/__init__.py', PKGDIR, update=1, verbose=0) + copy_file('src/__version__.py', PKGDIR, update=1, verbose=0) -if IN_CVS_TREE: # update the licence files - mkpath('licence') - for file in ['preamble.txt', 'licence.txt', 'licendoc.txt', 'lgpl.txt']: - copy_file(WXDIR+'/docs/'+file, 'licence/'+file, update=1, verbose=0) + if IN_CVS_TREE: # update the licence files + mkpath('licence') + for file in ['preamble.txt', 'licence.txt', 'licendoc.txt', 'lgpl.txt']: + copy_file(WXDIR+'/docs/'+file, 'licence/'+file, update=1, verbose=0) + + + if os.name == 'nt': + rc_file = ['src/wxc.rc'] + else: + rc_file = [] + + + ext = Extension('wxc', ['src/helpers.cpp', + 'src/libpy.c', + ] + rc_file + swig_sources, + + include_dirs = includes, + define_macros = defines, + + library_dirs = libdirs, + libraries = libs, + + extra_compile_args = cflags, + extra_link_args = lflags, + ) + wxpExtensions.append(ext) + + + # Extension for the grid module + swig_sources = run_swig(['grid.i'], 'src', GENDIR, PKGDIR, + USE_SWIG, swig_force, swig_args, swig_deps) + ext = Extension('gridc', swig_sources, + include_dirs = includes, + define_macros = defines, + library_dirs = libdirs, + libraries = libs, + extra_compile_args = cflags, + extra_link_args = lflags, + ) + wxpExtensions.append(ext) -if os.name == 'nt': - rc_file = ['src/wxc.rc'] -else: - rc_file = [] - - -ext = Extension('wxc', ['src/helpers.cpp', - 'src/libpy.c', - ] + rc_file + swig_sources, - - include_dirs = includes, - define_macros = defines, - - library_dirs = libdirs, - libraries = libs, - - extra_compile_args = cflags, - extra_link_args = lflags, - ) -wxpExtensions.append(ext) - - -# Extension for the grid module -swig_sources = run_swig(['grid.i'], 'src', GENDIR, PKGDIR, - USE_SWIG, swig_force, swig_args, swig_deps) -ext = Extension('gridc', swig_sources, - include_dirs = includes, - define_macros = defines, - library_dirs = libdirs, - libraries = libs, - extra_compile_args = cflags, - extra_link_args = lflags, - ) -wxpExtensions.append(ext) - - -# Extension for the html modules -swig_sources = run_swig(['html.i', 'htmlhelp.i'], 'src', GENDIR, PKGDIR, - USE_SWIG, swig_force, swig_args, swig_deps) -ext = Extension('htmlc', swig_sources, - include_dirs = includes, - define_macros = defines, - library_dirs = libdirs, - libraries = libs, - extra_compile_args = cflags, - extra_link_args = lflags, - ) -wxpExtensions.append(ext) - - -# Extension for the utils module -swig_sources = run_swig(['utils.i'], 'src', GENDIR, PKGDIR, - USE_SWIG, swig_force, swig_args, swig_deps) -ext = Extension('utilsc', swig_sources, - include_dirs = includes, - define_macros = defines, - library_dirs = libdirs, - libraries = libs, - extra_compile_args = cflags, - extra_link_args = lflags, - ) -wxpExtensions.append(ext) - - -# Extension for the calendar module -swig_sources = run_swig(['calendar.i'], 'src', GENDIR, PKGDIR, - USE_SWIG, swig_force, swig_args, swig_deps) -ext = Extension('calendarc', swig_sources, - include_dirs = includes, - define_macros = defines, - library_dirs = libdirs, - libraries = libs, - extra_compile_args = cflags, - extra_link_args = lflags, - ) -wxpExtensions.append(ext) + + # Extension for the html modules + swig_sources = run_swig(['html.i', 'htmlhelp.i'], 'src', GENDIR, PKGDIR, + USE_SWIG, swig_force, swig_args, swig_deps) + ext = Extension('htmlc', swig_sources, + include_dirs = includes, + define_macros = defines, + library_dirs = libdirs, + libraries = libs, + extra_compile_args = cflags, + extra_link_args = lflags, + ) + wxpExtensions.append(ext) + + + # Extension for the utils module + swig_sources = run_swig(['utils.i'], 'src', GENDIR, PKGDIR, + USE_SWIG, swig_force, swig_args, swig_deps) + ext = Extension('utilsc', swig_sources, + include_dirs = includes, + define_macros = defines, + library_dirs = libdirs, + libraries = libs, + extra_compile_args = cflags, + extra_link_args = lflags, + ) + wxpExtensions.append(ext) + + + # Extension for the calendar module + swig_sources = run_swig(['calendar.i'], 'src', GENDIR, PKGDIR, + USE_SWIG, swig_force, swig_args, swig_deps) + ext = Extension('calendarc', 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 #---------------------------------------------------------------------- -if BUILD_GLCANVAS: +if BUILD_GLCANVAS or GL_ONLY: print 'Preparing GLCANVAS...' location = 'contrib/glcanvas' swig_files = ['glcanvas.i'] + other_sources = [] swig_sources = run_swig(swig_files, location, GENDIR, PKGDIR, USE_SWIG, swig_force, swig_args) @@ -316,9 +338,13 @@ if BUILD_GLCANVAS: gl_libs = ['wx_gtkd_gl', 'GL', 'GLU'] else: gl_libs = ['wx_gtk_gl', 'GL', 'GLU'] + else: + other_sources = [location + '/msw/myglcanvas.cpp'] + gl_libs = ['opengl32', 'glu32'] + ext = Extension('glcanvasc', - swig_sources, + swig_sources + other_sources, include_dirs = includes, define_macros = defines, @@ -337,8 +363,7 @@ if BUILD_GLCANVAS: # Define the OGL extension module #---------------------------------------------------------------------- - -if BUILD_OGL: +if not GL_ONLY and BUILD_OGL: print 'Preparing OGL...' location = 'contrib/ogl' OGLLOC = location + '/contrib/src/ogl' @@ -387,7 +412,7 @@ if BUILD_OGL: # Define the STC extension module #---------------------------------------------------------------------- -if BUILD_STC: +if not GL_ONLY and BUILD_STC: print 'Preparing STC...' location = 'contrib/stc' STCLOC = location + '/contrib/src/stc' @@ -472,193 +497,44 @@ if BUILD_STC: # Do the Setup/Build/Install/Whatever #---------------------------------------------------------------------- -setup(name = PKGDIR, - version = VERSION, - description = DESCRIPTION, - long_description = LONG_DESCRIPTION, - author = AUTHOR, - author_email = AUTHOR_EMAIL, - url = URL, - licence = LICENCE, - - packages = [PKGDIR, - PKGDIR+'.lib', - PKGDIR+'.lib.editor', - ], +if __name__ == "__main__": + if not GL_ONLY: + setup(name = PKGDIR, + version = VERSION, + description = DESCRIPTION, + long_description = LONG_DESCRIPTION, + author = AUTHOR, + author_email = AUTHOR_EMAIL, + url = URL, + licence = LICENCE, + + packages = [PKGDIR, + PKGDIR+'.lib', + PKGDIR+'.lib.editor', + ], + + ext_package = PKGDIR, + ext_modules = wxpExtensions, + ) - ext_package = PKGDIR, - ext_modules = wxpExtensions, - - ) - - - - -#---------------------------------------------------------------------- -#---------------------------------------------------------------------- -#---------------------------------------------------------------------- + else: -# The pre-distutils binary distributions of wxPython included the demo -# as a subdirectory of the package dir. This doesn't really make sense -# for Linux/Unix platforms as it's not part of the package, and the user -# may want to tweak and learn without having to become root first. -# -# For now I am going to start distributing the demo as a separate tarball, -# but if I ever want to go back to the old way, this is how to do it the -# distutils way: + setup(name = "wxPython-gl", + version = VERSION, + description = "wxGLCanvas class for wxPython", + author = AUTHOR, + author_email = AUTHOR_EMAIL, + url = URL, + licence = LICENCE, + py_modules = [ "wxPython.glcanvas" ], -## from my_install_data import * + ext_package = PKGDIR, + ext_modules = wxpExtensions, + ) -## Add this to the setup() call -## # Overridden command classes -## cmdclass = {'install_data': my_install_data}, -## # non python files of examples -## data_files = [ -## Data_Files( -## base_dir='install_lib', -## copy_to = 'wxPython', -## #strip_dirs = 2, -## template=[ 'graft demo', -## 'global-exclude CVS/*' -## ], -## preserve_path=1 -## ) -## ], #---------------------------------------------------------------------- #---------------------------------------------------------------------- -#---------------------------------------------------------------------- -## if not BUILD_GLCANVAS: -## wxext.sources = wxext.sources + ['contrib/glcanvas/stub.cpp'] -## else: -## print 'Preparing GLCANVAS...' -## location = 'contrib/glcanvas' -## swig_files = ['glcanvas.i'] - -## swig_sources = run_swig(swig_files, location, GENDIR, PKGDIR, -## USE_SWIG, swig_force, swig_args, swig_deps) - -## gl_libs = [] -## if os.name == 'posix': -## if '-D__WXDEBUG__' in cflags: -## gl_libs = ['wx_gtkd_gl', 'GL', 'GLU'] -## else: -## gl_libs = ['wx_gtk_gl', 'GL', 'GLU'] - -## wxext.sources = wxext.sources + swig_sources -## wxext.libraries = wxext.libraries + gl_libs - - -## if not BUILD_OGL: -## wxext.sources = wxext.sources + ['contrib/ogl/stub.cpp'] -## else: -## print 'Preparing OGL...' -## location = 'contrib/ogl' -## OGLLOC = location + '/contrib/src/ogl' -## OGLINC = location + '/contrib/include' - -## swig_files = ['ogl.i', 'oglbasic.i', 'oglshapes.i', 'oglshapes2.i', -## 'oglcanvas.i'] - -## swig_sources = run_swig(swig_files, location, '', PKGDIR, -## USE_SWIG, swig_force, swig_args, swig_deps) - -## # make sure local copy of contrib files are up to date -## if IN_CVS_TREE: -## contrib_copy_tree(WXDIR + '/contrib/include/wx/ogl', OGLINC+'/wx/ogl') -## contrib_copy_tree(WXDIR + '/contrib/src/ogl', OGLLOC) - -## # add items to the core extension module definition -## wxext.sources = wxext.sources + [location + '/oglhelpers.cpp', -## '%s/basic.cpp' % OGLLOC, -## '%s/bmpshape.cpp' % OGLLOC, -## '%s/composit.cpp' % OGLLOC, -## '%s/divided.cpp' % OGLLOC, -## '%s/lines.cpp' % OGLLOC, -## '%s/misc.cpp' % OGLLOC, -## '%s/basic2.cpp' % OGLLOC, -## '%s/canvas.cpp' % OGLLOC, -## '%s/constrnt.cpp' % OGLLOC, -## '%s/drawn.cpp' % OGLLOC, -## '%s/mfutils.cpp' % OGLLOC, -## '%s/ogldiag.cpp' % OGLLOC, -## ] + swig_sources - -## wxext.include_dirs = wxext.include_dirs + [OGLINC] - - - - -## if not BUILD_STC: -## wxext.sources = wxext.sources + ['contrib/stc/stub.cpp'] -## else: -## print 'Preparing STC...' -## location = 'contrib/stc' -## STCLOC = location + '/contrib/src/stc' -## STCINC = location + '/contrib/include' -## STC_H = location + '/contrib/include/wx/stc' - -## # make sure local copy of contrib files are up to date -## if IN_CVS_TREE: -## contrib_copy_tree(WXDIR + '/contrib/include/wx/stc', STCINC+'/wx/stc') -## contrib_copy_tree(WXDIR + '/contrib/src/stc', STCLOC) - - -## swig_files = ['stc_.i'] -## swig_sources = run_swig(swig_files, location, '', PKGDIR, -## USE_SWIG, swig_force, -## swig_args + ['-I'+STC_H, '-I'+location], -## swig_deps + [STC_H+'/stc.h']) - -## # copy a project specific py module to the main package dir -## copy_file(location+'/stc.py', PKGDIR, update=1, verbose=1) - -## # add some include dirs to the standard set -## stc_includes = [ '%s/scintilla/include' % STCLOC, -## '%s/scintilla/src' % STCLOC, -## STCINC ] - -## # and some macro definitions -## stc_defines = [ ('__WX__', None), -## ('SCI_LEXER', None) ] - - -## # add items to the core extension module definition -## wxext.sources = wxext.sources + [ -## '%s/scintilla/src/AutoComplete.cxx' % STCLOC, -## '%s/scintilla/src/CallTip.cxx' % STCLOC, -## '%s/scintilla/src/CellBuffer.cxx' % STCLOC, -## '%s/scintilla/src/ContractionState.cxx' % STCLOC, -## '%s/scintilla/src/Document.cxx' % STCLOC, -## '%s/scintilla/src/Editor.cxx' % STCLOC, -## '%s/scintilla/src/Indicator.cxx' % STCLOC, -## '%s/scintilla/src/KeyMap.cxx' % STCLOC, -## '%s/scintilla/src/KeyWords.cxx' % STCLOC, -## '%s/scintilla/src/LineMarker.cxx' % STCLOC, -## '%s/scintilla/src/PropSet.cxx' % STCLOC, -## '%s/scintilla/src/ScintillaBase.cxx' % STCLOC, -## '%s/scintilla/src/Style.cxx' % STCLOC, -## '%s/scintilla/src/ViewStyle.cxx' % STCLOC, -## '%s/scintilla/src/LexCPP.cxx' % STCLOC, -## '%s/scintilla/src/LexHTML.cxx' % STCLOC, -## '%s/scintilla/src/LexLua.cxx' % STCLOC, -## '%s/scintilla/src/LexOthers.cxx' % STCLOC, -## '%s/scintilla/src/LexPerl.cxx' % STCLOC, -## '%s/scintilla/src/LexPython.cxx' % STCLOC, -## '%s/scintilla/src/LexSQL.cxx' % STCLOC, -## '%s/scintilla/src/LexVB.cxx' % STCLOC, -## '%s/scintilla/src/DocumentAccessor.cxx' % STCLOC, -## '%s/scintilla/src/UniConversion.cxx' % STCLOC, -## '%s/scintilla/src/WindowAccessor.cxx' % STCLOC, -## '%s/scintilla/src/PosRegExp.cxx' % STCLOC, - -## '%s/PlatWX.cpp' % STCLOC, -## '%s/ScintillaWX.cpp' % STCLOC, -## '%s/stc.cpp' % STCLOC, -## ] + swig_sources - -## wxext.include_dirs = wxext.include_dirs + stc_includes -## wxext.define_macros = wxext.define_macros + stc_defines