3a922bb4bd
recent changes to the 2.2 branch. Rationalised the autoconf scripts again, removed lots of stuff that shouldn't be there anymore and pounded the rest into an even tighter furball. (There's more work to be done here, but we're getting there..) Implemented the library naming scheme outlined in tn0012.txt -- introduced 'toolchain' and 'widget set' into the autoconf scripts, obsoleted the top level wx/setup.h and much of the mess associated with it. More changes for cross compiling and 2.3 debs. s/burnt_name/soname/g ; s/CC/CXX/g ; s/CCC/CC/g ; Just because it's Right. (Thanks Vadim for already doing *FLAGS..) Fixed libfl Makefile to actually work. Removed *_DEPS from tmake templates, in every case they can be determined from the relevant *_OBJS Added BASE_MSW_OBJS, a couple of missing #includes, some missing files to the 'dist' targets, and fixed some compile warnings. Changed setup.py to use wx-config --gl-libs instead of hard coded constants. Modified Files: Makefile.in configure configure.in setup.h.in wx-config.in wxBase.spec wxGTK.spec wxMotif.spec contrib/include/wx/applet/window.h contrib/src/Makefile.in contrib/src/applet/appletwindow.cpp contrib/src/fl/Makefile.in debian/changelog debian/control.in debian/libwxbase-dbg.dirs debian/libwxbase-dbg.links debian/libwxbase-dbg.postinst debian/libwxbase-dbg.prerm debian/libwxbase-dev.dirs debian/libwxbase-dev.files debian/libwxbase-dev.links debian/libwxbase-dev.postinst debian/libwxbase-dev.prerm debian/libwxgtk-dbg.dirs debian/libwxgtk-dbg.links debian/libwxgtk-dbg.postinst debian/libwxgtk-dbg.prerm debian/libwxgtk-dev.dirs debian/libwxgtk-dev.files debian/libwxgtk-dev.links debian/libwxgtk-dev.postinst debian/libwxgtk-dev.prerm debian/rules distrib/msw/tmake/base.t distrib/msw/tmake/gtk.t distrib/msw/tmake/mgl.t distrib/msw/tmake/motif.t distrib/msw/tmake/msw.t distrib/msw/tmake/os2.t distrib/msw/tmake/univ.t docs/motif/install.txt include/wx/msw/private.h include/wx/os2/SETUP.H include/wx/os2/SETUP0.H samples/ipc/Makefile.in samples/sockets/Makefile.in src/files.lst src/make.env.in src/makelib.env.in src/makeprog.env.in src/common/strconv.cpp src/gtk/files.lst src/mgl/files.lst src/motif/files.lst src/msw/files.lst src/msw/gsocket.c src/msw/gsockmsw.c src/msw/toplevel.cpp src/msw/utils.cpp src/os2/files.lst src/univ/files.lst wxPython/setup.py Added Files: debian/libwxbase-msw-dev.dirs debian/libwxbase-msw-dev.links debian/libwxbase-msw-dev.postinst debian/libwxbase-msw-dev.prerm debian/libwxmsw-dev.dirs debian/libwxmsw-dev.links debian/libwxmsw-dev.postinst debian/libwxmsw-dev.prerm debian/wxwin-doc.doc-base debian/wxwin-headers-msw.dirs Removed Files: debian/wxwin-doc.doc-base.in include/wx/setup.h git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@11713 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
766 lines
27 KiB
Python
Executable File
766 lines
27 KiB
Python
Executable File
#!/usr/bin/env python
|
|
#----------------------------------------------------------------------
|
|
|
|
import sys, os, string
|
|
from distutils.core import setup, Extension
|
|
from distutils.file_util import copy_file
|
|
from distutils.dir_util import mkpath
|
|
from distutils.dep_util import newer
|
|
|
|
from my_distutils import run_swig, contrib_copy_tree
|
|
|
|
#----------------------------------------------------------------------
|
|
# flags and values that affect this script
|
|
#----------------------------------------------------------------------
|
|
|
|
VERSION = "2.3.2b4"
|
|
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)"
|
|
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 implemented with a native look and
|
|
feel (and native runtime speed) on the platforms it is supported
|
|
on.
|
|
"""
|
|
|
|
|
|
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
|
|
|
|
USE_SWIG = 0 # Should we actually execute SWIG, or just use the
|
|
# files already in the distribution?
|
|
|
|
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
|
|
|
|
FINAL = 1 # 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 extension that can be used by the
|
|
# non-debug version of python, but contains
|
|
# debugging symbols for wxWindows and wxPython.
|
|
# wxWindows must have been built with /MD, not /MDd
|
|
# (using FINAL=hybrid will do it.)
|
|
|
|
WXDLLVER = '23_2' # Version part of DLL name
|
|
|
|
|
|
#----------------------------------------------------------------------
|
|
|
|
def msg(text):
|
|
if __name__ == "__main__":
|
|
print text
|
|
|
|
def opj(*args):
|
|
path = apply(os.path.join, args)
|
|
return os.path.normpath(path)
|
|
|
|
#----------------------------------------------------------------------
|
|
# Some other globals
|
|
#----------------------------------------------------------------------
|
|
|
|
PKGDIR = 'wxPython'
|
|
wxpExtensions = []
|
|
|
|
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', '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
|
|
if pos > 0:
|
|
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)
|
|
|
|
|
|
if CORE_ONLY:
|
|
BUILD_GLCANVAS = 0
|
|
BUILD_OGL = 0
|
|
BUILD_STC = 0
|
|
BUILD_XRC = 0
|
|
|
|
#----------------------------------------------------------------------
|
|
# Setup some platform specific stuff
|
|
#----------------------------------------------------------------------
|
|
|
|
if os.name == 'nt':
|
|
# Set compile flags and such for MSVC. These values are derived
|
|
# from the wxWindows makefiles for MSVC, others will probably
|
|
# vary...
|
|
WXDIR = os.environ['WXWIN']
|
|
WXPLAT = '__WXMSW__'
|
|
GENDIR = 'msw'
|
|
|
|
if debug:
|
|
FINAL = 0
|
|
HYBRID = 0
|
|
|
|
if HYBRID:
|
|
FINAL = 0
|
|
|
|
includes = ['src',
|
|
opj(WXDIR, 'include'),
|
|
]
|
|
|
|
defines = [ ('WIN32', None), # Some of these are no longer
|
|
('__WIN32__', None), # necessary. Anybody know which?
|
|
('_WINDOWS', None),
|
|
('__WINDOWS__', None),
|
|
('WINVER', '0x0400'),
|
|
('__WIN95__', None),
|
|
('STRICT', None),
|
|
|
|
(WXPLAT, None),
|
|
('WXUSINGDLL', '1'),
|
|
|
|
('SWIG_GLOBAL', None),
|
|
('HAVE_CONFIG_H', None),
|
|
('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) )
|
|
|
|
libdirs = [opj(WXDIR, 'lib'), 'build\\ilib']
|
|
|
|
if FINAL:
|
|
wxdll = 'wx' + WXDLLVER
|
|
elif HYBRID:
|
|
wxdll = 'wx' + WXDLLVER + 'h'
|
|
else:
|
|
wxdll = 'wx' + WXDLLVER + 'd'
|
|
|
|
|
|
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 on some machines
|
|
lflags = None
|
|
|
|
|
|
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=' + opj(WXDIR, '\src\msw\wx32.csm'),
|
|
'@' + opj(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
|
|
|
|
WXDIR = '..' # assumes IN_CVS_TREE
|
|
WXPLAT = '__WXGTK__' # and assumes GTK...
|
|
GENDIR = 'gtk' # Need to allow for Motif eventually too
|
|
|
|
includes = ['src']
|
|
defines = [('SWIG_GLOBAL', None),
|
|
('HAVE_CONFIG_H', None),
|
|
('WXP_USE_THREAD', '1'),
|
|
]
|
|
libdirs = []
|
|
libs = []
|
|
|
|
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 = string.split(lflags)
|
|
|
|
|
|
else:
|
|
raise 'Sorry Charlie...'
|
|
|
|
|
|
#----------------------------------------------------------------------
|
|
# Check if the version file needs updated
|
|
#----------------------------------------------------------------------
|
|
|
|
if IN_CVS_TREE and newer('setup.py', 'src/__version__.py'):
|
|
open('src/__version__.py', 'w').write("ver = '%s'\n" % VERSION)
|
|
|
|
|
|
|
|
#----------------------------------------------------------------------
|
|
# SWIG defaults
|
|
#----------------------------------------------------------------------
|
|
|
|
swig_force = force
|
|
swig_args = ['-c++', '-shadow', '-python', '-keyword',
|
|
'-dnone',
|
|
#'-dascii',
|
|
#'-docstring', '-Sbefore',
|
|
'-I./src', '-D'+WXPLAT]
|
|
swig_deps = ['src/my_typemaps.i']
|
|
|
|
|
|
#----------------------------------------------------------------------
|
|
# Define the CORE extension module
|
|
#----------------------------------------------------------------------
|
|
|
|
if not GL_ONLY:
|
|
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',
|
|
'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)
|
|
|
|
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(opj(WXDIR, 'docs', file), opj('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)
|
|
|
|
|
|
# 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 help module
|
|
swig_sources = run_swig(['help.i'], 'src', GENDIR, PKGDIR,
|
|
USE_SWIG, swig_force, swig_args, swig_deps)
|
|
ext = Extension('helpc', 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
|
|
#----------------------------------------------------------------------
|
|
|
|
CTRB_SRC = opj(WXDIR, 'contrib/src')
|
|
CTRB_INC = opj(WXDIR, 'contrib/include/wx')
|
|
|
|
if BUILD_GLCANVAS or GL_ONLY:
|
|
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 = []
|
|
if os.name == 'posix':
|
|
gl_libs = os.popen(WX_CONFIG + ' --gl-libs', 'r').read()[:-1]
|
|
gl_libs = string.split(gl_libs)
|
|
else:
|
|
other_sources = [opj(location, 'msw/myglcanvas.cpp')]
|
|
gl_libs = ['opengl32', 'glu32']
|
|
|
|
|
|
ext = Extension('glcanvasc',
|
|
swig_sources + other_sources,
|
|
|
|
include_dirs = includes,
|
|
define_macros = defines,
|
|
|
|
library_dirs = libdirs,
|
|
libraries = libs,
|
|
|
|
extra_compile_args = cflags,
|
|
extra_link_args = gl_libs + lflags,
|
|
)
|
|
|
|
wxpExtensions.append(ext)
|
|
|
|
|
|
#----------------------------------------------------------------------
|
|
# Define the OGL extension module
|
|
#----------------------------------------------------------------------
|
|
|
|
if not GL_ONLY and BUILD_OGL:
|
|
msg('Preparing OGL...')
|
|
location = 'contrib/ogl'
|
|
OGLLOC = opj(location, 'contrib/src/ogl')
|
|
OGLINC = opj(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)
|
|
|
|
if IN_CVS_TREE:
|
|
# make sure local copy of contrib files are up to date
|
|
contrib_copy_tree(opj(CTRB_INC, 'ogl'), opj(OGLINC, 'wx/ogl'))
|
|
contrib_copy_tree(opj(CTRB_SRC, 'ogl'), OGLLOC)
|
|
|
|
ext = Extension('oglc', ['%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,
|
|
|
|
include_dirs = [OGLINC] + includes,
|
|
define_macros = defines,
|
|
|
|
library_dirs = libdirs,
|
|
libraries = libs,
|
|
|
|
extra_compile_args = cflags,
|
|
extra_link_args = lflags,
|
|
)
|
|
|
|
wxpExtensions.append(ext)
|
|
|
|
|
|
|
|
#----------------------------------------------------------------------
|
|
# Define the STC extension module
|
|
#----------------------------------------------------------------------
|
|
|
|
if not GL_ONLY and BUILD_STC:
|
|
msg('Preparing STC...')
|
|
location = 'contrib/stc'
|
|
STCLOC = opj(location, 'contrib/src/stc')
|
|
STCINC = opj(location, 'contrib/include')
|
|
STC_H = opj(location, 'contrib/include/wx/stc')
|
|
|
|
if IN_CVS_TREE:
|
|
# Check if gen_iface needs to be run for the wxSTC sources
|
|
if (newer(opj(CTRB_SRC, 'stc/stc.h.in'), opj(CTRB_INC, 'stc/stc.h' )) or
|
|
newer(opj(CTRB_SRC, 'stc/stc.cpp.in'), opj(CTRB_SRC, 'stc/stc.cpp')) or
|
|
newer(opj(CTRB_SRC, 'stc/gen_iface.py'), opj(CTRB_SRC, 'stc/stc.cpp'))):
|
|
|
|
msg('Running gen_iface.py, regenerating stc.h and stc.cpp...')
|
|
cwd = os.getcwd()
|
|
os.chdir(opj(CTRB_SRC, 'stc'))
|
|
import gen_iface
|
|
gen_iface.main([])
|
|
os.chdir(cwd)
|
|
|
|
|
|
# make sure local copy of contrib files are up to date
|
|
contrib_copy_tree(opj(CTRB_INC, 'stc'), opj(STCINC, 'wx/stc'))
|
|
contrib_copy_tree(opj(CTRB_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],
|
|
[opj(STC_H, 'stc.h')])
|
|
|
|
# copy a project specific py module to the main package dir
|
|
copy_file(opj(location, 'stc.py'), PKGDIR, update=1, verbose=0)
|
|
|
|
# add some include dirs to the standard set
|
|
stc_includes = includes[:]
|
|
stc_includes.append('%s/scintilla/include' % STCLOC)
|
|
stc_includes.append('%s/scintilla/src' % STCLOC)
|
|
stc_includes.append(STCINC)
|
|
|
|
# and some macro definitions
|
|
stc_defines = defines[:]
|
|
stc_defines.append( ('__WX__', None) )
|
|
stc_defines.append( ('SCI_LEXER', None) )
|
|
|
|
|
|
ext = Extension('stc_c',
|
|
['%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/DocumentAccessor.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/RESearch.cxx' % STCLOC,
|
|
'%s/scintilla/src/ScintillaBase.cxx' % STCLOC,
|
|
'%s/scintilla/src/Style.cxx' % STCLOC,
|
|
'%s/scintilla/src/UniConversion.cxx' % STCLOC,
|
|
'%s/scintilla/src/ViewStyle.cxx' % STCLOC,
|
|
'%s/scintilla/src/WindowAccessor.cxx' % STCLOC,
|
|
|
|
'%s/scintilla/src/LexAda.cxx' % STCLOC,
|
|
'%s/scintilla/src/LexAVE.cxx' % STCLOC,
|
|
'%s/scintilla/src/LexConf.cxx' % STCLOC,
|
|
'%s/scintilla/src/LexCPP.cxx' % STCLOC,
|
|
'%s/scintilla/src/LexEiffel.cxx' % STCLOC,
|
|
'%s/scintilla/src/LexHTML.cxx' % STCLOC,
|
|
'%s/scintilla/src/LexLisp.cxx' % STCLOC,
|
|
'%s/scintilla/src/LexLua.cxx' % STCLOC,
|
|
'%s/scintilla/src/LexOthers.cxx' % STCLOC,
|
|
'%s/scintilla/src/LexPascal.cxx' % STCLOC,
|
|
'%s/scintilla/src/LexPerl.cxx' % STCLOC,
|
|
'%s/scintilla/src/LexPython.cxx' % STCLOC,
|
|
'%s/scintilla/src/LexRuby.cxx' % STCLOC,
|
|
'%s/scintilla/src/LexSQL.cxx' % STCLOC,
|
|
'%s/scintilla/src/LexVB.cxx' % STCLOC,
|
|
|
|
'%s/PlatWX.cpp' % STCLOC,
|
|
'%s/ScintillaWX.cpp' % STCLOC,
|
|
'%s/stc.cpp' % STCLOC,
|
|
] + swig_sources,
|
|
|
|
include_dirs = stc_includes,
|
|
define_macros = stc_defines,
|
|
|
|
library_dirs = libdirs,
|
|
libraries = libs,
|
|
|
|
extra_compile_args = cflags,
|
|
extra_link_args = lflags,
|
|
)
|
|
|
|
wxpExtensions.append(ext)
|
|
|
|
|
|
|
|
#----------------------------------------------------------------------
|
|
# 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 = opj(location, 'contrib/src/xrc')
|
|
XMLINC = opj(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(opj(CTRB_INC, 'xrc'), opj(XMLINC, 'wx/xrc'))
|
|
contrib_copy_tree(opj(CTRB_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
|
|
#----------------------------------------------------------------------
|
|
|
|
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',
|
|
PKGDIR+'.lib.mixins'
|
|
],
|
|
|
|
ext_package = PKGDIR,
|
|
ext_modules = wxpExtensions,
|
|
)
|
|
|
|
else:
|
|
|
|
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" ],
|
|
|
|
ext_package = PKGDIR,
|
|
ext_modules = wxpExtensions,
|
|
)
|
|
|
|
|
|
|
|
|
|
#----------------------------------------------------------------------
|
|
#----------------------------------------------------------------------
|