# flags and values that affect this script
#----------------------------------------------------------------------
-VERSION = "2.3b3"
+VERSION = "2.3.2b1"
DESCRIPTION = "Cross platform GUI toolkit for Python"
AUTHOR = "Robin Dunn"
-AUTHOR_EMAIL = "robin@alldunn.com"
+AUTHOR_EMAIL = "Robin Dunn <robin@alldunn.com>"
URL = "http://wxPython.org/"
LICENCE = "wxWindows (LGPL derivative)"
LONG_DESCRIPTION = """\
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
+BUILD_IEWIN = 0 # Internet Explorer wrapper (experimental)
+BUILD_XRC = 1 # XML based resource system
+
+
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
# 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
# wxWindows must have been built with /MD, not /MDd
# (using FINAL=hybrid will do it.)
-WXDLLVER = '23_0' # Version part of DLL name
+WXDLLVER = '23_2' # Version part of DLL name
+
+
+#----------------------------------------------------------------------
+
+def msg(text):
+ if __name__ == "__main__":
+ print text
#----------------------------------------------------------------------
force = '--force' in sys.argv or '-f' in sys.argv
debug = '--debug' in sys.argv or '-g' in sys.argv
+bcpp_compiling = '-c' in sys.argv and 'my_bcpp' in sys.argv # Bad heuristic
+
+if bcpp_compiling:
+ msg("Compiling wxPython by Borland C/C++ Compiler")
+ HYBRID=0
+ WXBCPPLIBVER = string.replace(WXDLLVER,"_","")
+ # Version part of BCPP build LIBRARY name
+ WXDLLVER="" # no dll ver path avaible
+
#----------------------------------------------------------------------
# Check for build flags on the command line
#----------------------------------------------------------------------
-for flag in ['BUILD_GLCANVAS', 'BUILD_OGL', 'BUILD_STC', 'CORE_ONLY',
- 'USE_SWIG', 'IN_CVS_TREE', 'FINAL', 'HYBRID',
- 'WXDLLVER', ]:
+for flag in ['BUILD_GLCANVAS', 'BUILD_OGL', 'BUILD_STC', 'BUILD_XRC',
+ 'CORE_ONLY', '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
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)
BUILD_GLCANVAS = 0
BUILD_OGL = 0
BUILD_STC = 0
+ BUILD_XRC = 0
#----------------------------------------------------------------------
# Setup some platform specific stuff
('WXP_USE_THREAD', '1'),
]
+ if bcpp_compiling: # overwrite it
+ defines = [
+ ('_WINDOWS', None),
+ ('WINVER', '0x0400'),
+ ('STRICT', None),
+
+ ('WXUSINGDLL', '1'),
+
+ ('SWIG_GLOBAL', None),
+ ('HAVE_CONFIG_H', None),
+ ('WXP_USE_THREAD', '1'),
+
+ ('WXUSE_DEFINE','1'),
+ ('_RTLDLL',None),
+ ]
+
+
if not FINAL or HYBRID:
defines.append( ('__WXDEBUG__', None) )
wxdll = 'wx' + WXDLLVER + 'd'
- libs = [wxdll, 'kernel32', 'user32', 'gdi32', 'comdlg32',
+ libs = [wxdll]
+ if bcpp_compiling:
+ libs = ['wx'+WXBCPPLIBVER]
+
+ libs = libs + ['kernel32', 'user32', 'gdi32', 'comdlg32',
'winspool', 'winmm', 'shell32', 'oldnames', 'comctl32',
'ctl3d32', 'odbc32', 'ole32', 'oleaut32', 'uuid', 'rpcrt4',
'advapi32', 'wsock32']
- cflags = ['/GX-'] # workaround for internal compiler error in MSVC 5
+
+ cflags = [] #['/GX-'] # workaround for internal compiler error in MSVC 5
lflags = None
- if not FINAL and HYBRID:
+
+ if bcpp_compiling: # overwrite it
+ cflags = ['-5', '-VF', ### To supplort MSVC spurious semicolons in the class scope
+ ### else, all semicolons at the end of all DECLARE_...CALLBACK... macros must be eliminated
+ '-Hc', '-H='+WXDIR+'\src\msw\wx32.csm',
+ '@'+WXDIR+'\src\msw\wxwin32.cfg'
+ ]
+
+
+ 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', ] ## '/PDB:NONE']
+
+
elif os.name == 'posix':
# Set flags for Unix type platforms
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)
#----------------------------------------------------------------------
if not GL_ONLY:
- print 'Preparing CORE...'
+ msg('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',
#----------------------------------------------------------------------
if BUILD_GLCANVAS or GL_ONLY:
- print 'Preparing GLCANVAS...'
+ msg('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)
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,
#----------------------------------------------------------------------
if not GL_ONLY and BUILD_OGL:
- print 'Preparing OGL...'
+ msg('Preparing OGL...')
location = 'contrib/ogl'
OGLLOC = location + '/contrib/src/ogl'
OGLINC = location + '/contrib/include'
#----------------------------------------------------------------------
if not GL_ONLY and BUILD_STC:
- print 'Preparing STC...'
+ msg('Preparing STC...')
location = 'contrib/stc'
STCLOC = location + '/contrib/src/stc'
STCINC = location + '/contrib/include'
[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)
+ copy_file(location+'/stc.py', PKGDIR, update=1, verbose=0)
# add some include dirs to the standard set
stc_includes = includes[:]
+#----------------------------------------------------------------------
+# Define the IEWIN extension module (experimental)
+#----------------------------------------------------------------------
+
+if not GL_ONLY and BUILD_IEWIN:
+ msg('Preparing IEWIN...')
+ location = 'contrib/iewin'
+
+ swig_files = ['iewin.i', ]
+
+ swig_sources = run_swig(swig_files, location, '', PKGDIR,
+ USE_SWIG, swig_force, swig_args)
+
+
+ ext = Extension('iewinc', ['%s/IEHtmlWin.cpp' % location,
+ ] + 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 XRC extension module
+#----------------------------------------------------------------------
+
+if not GL_ONLY and BUILD_XRC:
+ msg('Preparing XRC...')
+ location = 'contrib/xrc'
+ XMLLOC = location + '/contrib/src/xrc'
+ XMLINC = location + '/contrib/include'
+
+ swig_files = ['xrc.i']
+
+ swig_sources = run_swig(swig_files, location, '', PKGDIR,
+ USE_SWIG, swig_force, swig_args)
+
+ xmlres_includes = includes[:]
+ xmlres_includes.append('%s/expat/xmlparse' % XMLLOC)
+ xmlres_includes.append('%s/expat/xmltok' % XMLLOC)
+ xmlres_includes.append(XMLINC)
+
+
+ # make sure local copy of contrib files are up to date
+ if IN_CVS_TREE:
+ contrib_copy_tree(WXDIR + '/contrib/include/wx/xrc', XMLINC+'/wx/xrc')
+ contrib_copy_tree(WXDIR + '/contrib/src/xrc', XMLLOC)
+
+ ext = Extension('xrcc', ['%s/expat/xmlparse/xmlparse.c' % XMLLOC,
+ '%s/expat/xmltok/xmlrole.c' % XMLLOC,
+ '%s/expat/xmltok/xmltok.c' % XMLLOC,
+
+ '%s/xh_bmp.cpp' % XMLLOC,
+ '%s/xh_bmpbt.cpp' % XMLLOC,
+ '%s/xh_bttn.cpp' % XMLLOC,
+ '%s/xh_cald.cpp' % XMLLOC,
+ '%s/xh_chckb.cpp' % XMLLOC,
+
+ '%s/xh_chckl.cpp' % XMLLOC,
+ '%s/xh_choic.cpp' % XMLLOC,
+ '%s/xh_combo.cpp' % XMLLOC,
+ '%s/xh_dlg.cpp' % XMLLOC,
+ '%s/xh_frame.cpp' % XMLLOC,
+
+ '%s/xh_gauge.cpp' % XMLLOC,
+ '%s/xh_html.cpp' % XMLLOC,
+ '%s/xh_listb.cpp' % XMLLOC,
+ '%s/xh_listc.cpp' % XMLLOC,
+ '%s/xh_menu.cpp' % XMLLOC,
+
+ '%s/xh_notbk.cpp' % XMLLOC,
+ '%s/xh_panel.cpp' % XMLLOC,
+ '%s/xh_radbt.cpp' % XMLLOC,
+ '%s/xh_radbx.cpp' % XMLLOC,
+ '%s/xh_scrol.cpp' % XMLLOC,
+
+ '%s/xh_sizer.cpp' % XMLLOC,
+ '%s/xh_slidr.cpp' % XMLLOC,
+ '%s/xh_spin.cpp' % XMLLOC,
+ '%s/xh_stbmp.cpp' % XMLLOC,
+ '%s/xh_stbox.cpp' % XMLLOC,
+
+ '%s/xh_stlin.cpp' % XMLLOC,
+ '%s/xh_sttxt.cpp' % XMLLOC,
+ '%s/xh_text.cpp' % XMLLOC,
+ '%s/xh_toolb.cpp' % XMLLOC,
+ '%s/xh_tree.cpp' % XMLLOC,
+
+ '%s/xh_unkwn.cpp' % XMLLOC,
+ '%s/xml.cpp' % XMLLOC,
+ '%s/xmlbin.cpp' % XMLLOC,
+ '%s/xmlbinz.cpp' % XMLLOC,
+ '%s/xmlexpat.cpp' % XMLLOC,
+
+ '%s/xmlres.cpp' % XMLLOC,
+ '%s/xmlrsall.cpp' % XMLLOC,
+ '%s/xmlwrite.cpp' % XMLLOC,
+
+ ] + swig_sources,
+
+ include_dirs = xmlres_includes,
+ define_macros = defines,
+
+ library_dirs = libdirs,
+ libraries = libs,
+
+ extra_compile_args = cflags,
+ extra_link_args = lflags,
+ )
+
+ wxpExtensions.append(ext)
+
+
+
+
#----------------------------------------------------------------------
# Do the Setup/Build/Install/Whatever
#----------------------------------------------------------------------
packages = [PKGDIR,
PKGDIR+'.lib',
PKGDIR+'.lib.editor',
+ PKGDIR+'.lib.mixins'
],
ext_package = PKGDIR,