wxWidgets/wxPython/setup.py
Ron Lee 3a922bb4bd More build system polishing.. mostly. Some stuff ported over from
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
2001-09-28 07:00:13 +00:00

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,
)
#----------------------------------------------------------------------
#----------------------------------------------------------------------