From 058973c50c366c9d1249d262891512d28e111c68 Mon Sep 17 00:00:00 2001 From: Robin Dunn Date: Thu, 12 Oct 2000 05:17:23 +0000 Subject: [PATCH] DistUtils setup and support scripts git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_2_BRANCH@8532 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- wxPython/MANIFEST.in | 89 +++++++++ wxPython/my_distutils.py | 285 +++++++++++++++++++++++++++ wxPython/setup.cfg | 10 + wxPython/setup.py | 406 +++++++++++++++++++++++++++++++++++++++ 4 files changed, 790 insertions(+) create mode 100644 wxPython/MANIFEST.in create mode 100644 wxPython/my_distutils.py create mode 100644 wxPython/setup.cfg create mode 100755 wxPython/setup.py diff --git a/wxPython/MANIFEST.in b/wxPython/MANIFEST.in new file mode 100644 index 0000000000..c408c7e0c6 --- /dev/null +++ b/wxPython/MANIFEST.in @@ -0,0 +1,89 @@ +include *.txt +include my_distutils.py +include licence/*.txt + +include demo/*.py +include demo/bitmaps/*.bmp +include demo/bitmaps/*.ico +include demo/bitmaps/*.gif +include demo/bitmaps/*.png +include demo/bitmaps/*.jpg +include demo/README.txt +include demo/*.xml +include demo/data/*.png +include demo/data/*.htm +include demo/data/*.html +include demo/data/*.bmp +include demo/data/*.txt +include demo/data/*.i +include demo/data/*.h + +include wxPython/lib/*.py +include wxPython/lib/*.txt +include wxPython/lib/sizers/*.py +include wxPython/lib/sizers/*.txt +include wxPython/lib/editor/*.py +include wxPython/lib/editor/*.txt + +exclude wxPython/* + +include src/*.i +include src/*.py +include src/*.cpp +include src/*.c +include src/*.h +include src/*.ico +include src/*.rc + +include src/msw/*.cpp +include src/msw/*.h +include src/msw/*.py + +include src/gtk/*.cpp +include src/gtk/*.h +include src/gtk/*.py + +# src/motif/*.cpp +# src/motif/*.h +# src/motif/*.py + + +include contrib/glcanvas/*.i +include contrib/glcanvas/*.py +include contrib/glcanvas/*.cpp +include contrib/glcanvas/*.c +include contrib/glcanvas/*.h +include contrib/glcanvas/msw/*.cpp +include contrib/glcanvas/msw/*.h +include contrib/glcanvas/msw/*.py +include contrib/glcanvas/gtk/*.cpp +include contrib/glcanvas/gtk/*.h +include contrib/glcanvas/gtk/*.py + +include contrib/ogl/*.txt +include contrib/ogl/*.i +include contrib/ogl/*.py +include contrib/ogl/*.cpp +include contrib/ogl/*.c +include contrib/ogl/*.h +include contrib/ogl/contrib/include/wx/ogl/*.h +include contrib/ogl/contrib/src/ogl/*.cpp + +include contrib/stc/*.txt +include contrib/stc/*.i +include contrib/stc/*.py +include contrib/stc/*.cpp +include contrib/stc/*.c +include contrib/stc/*.h +include contrib/stc/*.cpp +include contrib/stc/*.py +include contrib/stc/contrib/include/wx/stc/*.h +include contrib/stc/contrib/src/stc/*.h +include contrib/stc/contrib/src/stc/*.cpp +include contrib/stc/contrib/src/stc/*.txt +include contrib/stc/contrib/src/stc/*.py +include contrib/stc/contrib/src/stc/scintilla/include/*.h +include contrib/stc/contrib/src/stc/scintilla/include/*.iface +include contrib/stc/contrib/src/stc/scintilla/src/*.h +include contrib/stc/contrib/src/stc/scintilla/src/*.cxx + diff --git a/wxPython/my_distutils.py b/wxPython/my_distutils.py new file mode 100644 index 0000000000..9f06801bf6 --- /dev/null +++ b/wxPython/my_distutils.py @@ -0,0 +1,285 @@ + +import sys, os, string + +from distutils.msvccompiler import MSVCCompiler + +from distutils.errors import \ + DistutilsExecError, DistutilsPlatformError, \ + CompileError, LibError, LinkError +from distutils.ccompiler import \ + CCompiler, gen_preprocess_options, gen_lib_options + +#---------------------------------------------------------------------- + +class MyMSVCCompiler(MSVCCompiler): + + ##------------------------------------------------------------ + ## Override the entire compile method just to add flags to the + ## RC command. There should be an easier way to do this from + ## distutils directly or in a derived class... + ##------------------------------------------------------------ + + def compile (self, + sources, + output_dir=None, + macros=None, + include_dirs=None, + debug=0, + extra_preargs=None, + extra_postargs=None): + + (output_dir, macros, include_dirs) = \ + self._fix_compile_args (output_dir, macros, include_dirs) + (objects, skip_sources) = self._prep_compile (sources, output_dir) + + if extra_postargs is None: + extra_postargs = [] + + pp_opts = gen_preprocess_options (macros, include_dirs) + compile_opts = extra_preargs or [] + compile_opts.append ('/c') + if debug: + compile_opts.extend (self.compile_options_debug) + else: + compile_opts.extend (self.compile_options) + + for i in range (len (sources)): + src = sources[i] ; obj = objects[i] + ext = (os.path.splitext (src))[1] + + if skip_sources[src]: + self.announce ("skipping %s (%s up-to-date)" % (src, obj)) + else: + self.mkpath (os.path.dirname (obj)) + + if ext in self._c_extensions: + input_opt = "/Tc" + src + elif ext in self._cpp_extensions: + input_opt = "/Tp" + src + elif ext in self._rc_extensions: + # compile .RC to .RES file + input_opt = src + output_opt = "/fo" + obj + try: + self.spawn ([self.rc] + pp_opts + ### RPD changed this line only + [output_opt] + [input_opt]) + except DistutilsExecError, msg: + raise CompileError, msg + continue + elif ext in self._mc_extensions: + + # Compile .MC to .RC file to .RES file. + # * '-h dir' specifies the directory for the + # generated include file + # * '-r dir' specifies the target directory of the + # generated RC file and the binary message resource + # it includes + # + # For now (since there are no options to change this), + # we use the source-directory for the include file and + # the build directory for the RC file and message + # resources. This works at least for win32all. + + h_dir = os.path.dirname (src) + rc_dir = os.path.dirname (obj) + try: + # first compile .MC to .RC and .H file + self.spawn ([self.mc] + + ['-h', h_dir, '-r', rc_dir] + [src]) + base, _ = os.path.splitext (os.path.basename (src)) + rc_file = os.path.join (rc_dir, base + '.rc') + # then compile .RC to .RES file + self.spawn ([self.rc] + + ["/fo" + obj] + [rc_file]) + + except DistutilsExecError, msg: + raise CompileError, msg + continue + else: + # how to handle this file? + raise CompileError ( + "Don't know how to compile %s to %s" % \ + (src, obj)) + + output_opt = "/Fo" + obj + try: + self.spawn ([self.cc] + compile_opts + pp_opts + + [input_opt, output_opt] + + extra_postargs) + except DistutilsExecError, msg: + raise CompileError, msg + + return objects + + # compile () + + + + ##------------------------------------------------------------ + ## Now override the link() method to change where the import + ## library is placed. Hopefully distutils will be updated + ## someday to make this configurable... + ##------------------------------------------------------------ + + def link (self, + target_desc, + objects, + output_filename, + output_dir=None, + libraries=None, + library_dirs=None, + runtime_library_dirs=None, + export_symbols=None, + debug=0, + extra_preargs=None, + extra_postargs=None, + build_temp=None): + + (objects, output_dir) = self._fix_object_args (objects, output_dir) + (libraries, library_dirs, runtime_library_dirs) = \ + self._fix_lib_args (libraries, library_dirs, runtime_library_dirs) + + if runtime_library_dirs: + self.warn ("I don't know what to do with 'runtime_library_dirs': " + + str (runtime_library_dirs)) + + lib_opts = gen_lib_options (self, + library_dirs, runtime_library_dirs, + libraries) + if output_dir is not None: + output_filename = os.path.join (output_dir, output_filename) + + if self._need_link (objects, output_filename): + + if target_desc == CCompiler.EXECUTABLE: + if debug: + ldflags = self.ldflags_shared_debug[1:] + else: + ldflags = self.ldflags_shared[1:] + else: + if debug: + ldflags = self.ldflags_shared_debug + else: + ldflags = self.ldflags_shared + + export_opts = [] + for sym in (export_symbols or []): + export_opts.append("/EXPORT:" + sym) + + ld_args = (ldflags + lib_opts + export_opts + + objects + ['/OUT:' + output_filename]) + + # The MSVC linker generates .lib and .exp files, which cannot be + # suppressed by any linker switches. The .lib files may even be + # needed! Make sure they are generated in the temporary build + # directory. Since they have different names for debug and release + # builds, they can go into the same directory. + if export_symbols is not None: + (dll_name, dll_ext) = os.path.splitext( + os.path.basename(output_filename)) + + ## The old code + ##implib_file = os.path.join( + ## os.path.dirname(objects[0]), + ## self.library_filename(dll_name)) + + ## The new + implib_file = os.path.join('build', 'ilib', + self.library_filename(dll_name)) + self.mkpath(os.path.dirname(implib_file)) + + ld_args.append ('/IMPLIB:' + implib_file) + + if extra_preargs: + ld_args[:0] = extra_preargs + if extra_postargs: + ld_args.extend(extra_postargs) + + self.mkpath (os.path.dirname (output_filename)) + try: + self.spawn ([self.linker] + ld_args) + except DistutilsExecError, msg: + raise LinkError, msg + + else: + self.announce ("skipping %s (up-to-date)" % output_filename) + + # link () + + + +#---------------------------------------------------------------------- +# Hack this module and class into the distutils... + +from distutils import ccompiler + +ccompiler.default_compiler['nt'] = 'my_msvc' +ccompiler.compiler_class['my_msvc'] = ('my_distutils', + 'MyMSVCCompiler', + 'My MSVC derived class') + + +# make it look like it is part of the package... +import my_distutils +sys.modules['distutils.my_distutils'] = my_distutils + + + + +#---------------------------------------------------------------------- +# Run SWIG the way I want it done + +def run_swig(files, dir, gendir, package, USE_SWIG, force, swig_args, swig_deps=[]): + from distutils.file_util import copy_file + from distutils.dep_util import newer + from distutils.spawn import spawn + + sources = [] + + for file in files: + basefile = os.path.splitext(file)[0] + i_file = os.path.join(dir, file) + py_file = os.path.join(dir, gendir, basefile+'.py') + cpp_file = os.path.join(dir, gendir, basefile+'.cpp') + + sources.append(cpp_file) + + if USE_SWIG: + for dep in swig_deps: + if newer(dep, py_file) or newer(dep, cpp_file): + force = 1 + break + + if force or newer(i_file, py_file) or newer(i_file, cpp_file): + # we need forward slashes here even on win32 + cpp_file = string.join(string.split(cpp_file, '\\'), '/') + i_file = string.join(string.split(i_file, '\\'), '/') + + cmd = ['swig'] + swig_args + ['-c', '-o', cpp_file, i_file] + spawn(cmd, verbose=1) + + # copy the generated python file to the package directory + copy_file(py_file, package, update=not force, verbose=0) + + + return sources + + + +#---------------------------------------------------------------------- +# Update local copies of wxWindows contrib files + + +def contrib_copy_tree(src, dest, verbose=0): + from distutils.dir_util import mkpath, copy_tree + + mkpath(dest, verbose=verbose) + copy_tree(src, dest, update=1, verbose=verbose) + + + + + + + + diff --git a/wxPython/setup.cfg b/wxPython/setup.cfg new file mode 100644 index 0000000000..967d8faf94 --- /dev/null +++ b/wxPython/setup.cfg @@ -0,0 +1,10 @@ +[build_ext] +inplace=0 + + +[bdist_rpm] +release = 1 +group = Development/Languages/Python +packager = Robin Dunn +vendor = wxPROs +doc_files = README.txt BUILD.txt CHANGES.txt licence/ diff --git a/wxPython/setup.py b/wxPython/setup.py new file mode 100755 index 0000000000..c30bc6cb5a --- /dev/null +++ b/wxPython/setup.py @@ -0,0 +1,406 @@ +#!/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 my_distutils import run_swig, contrib_copy_tree + +#---------------------------------------------------------------------- +# flags that affect this script +#---------------------------------------------------------------------- + +VERSION = "2.2.2" +DESCRIPTION = "Cross platform GUI toolkit for Python" +AUTHOR = "Robin Dunn" +AUTHOR_EMAIL = "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 imlemented with a native look and +feel (and 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 + + +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 + + +#---------------------------------------------------------------------- +# Some globals +#---------------------------------------------------------------------- + +PKGDIR = 'wxPython' +wxpExtensions = [] + +force = '--force' in sys.argv or '-f' in sys.argv +debug = '--debug' in sys.argv or '-g' in sys.argv + +#---------------------------------------------------------------------- +# 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' + + + #------------------------------------------------------------------ + # Some MSW build settings + + FINAL = 0 # Mirrors use of same flag in wx makefiles, + # should probably autodetect... + + 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. + # wxWindows must hav ebeen built with /MD, not /MDd + + WXDLLVER = '22_1' # Version part of DLL name + + + if debug: + FINAL=0 + HYBRID = 0 + + + includes = ['src', + os.path.join(WXDIR, 'include'), + ##os.path.join(WXDIR, 'contrib/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 not FINAL or HYBRID: + defines.append( ('__WXDEBUG__', None) ) + + libdirs = [os.path.join(WXDIR, 'lib'), 'build\\ilib'] + + if FINAL: + wxdll = 'wx' + WXDLLVER + else: + wxdll = 'wx' + WXDLLVER + 'd' + libs = [wxdll, 'kernel32', 'user32', 'gdi32', 'comdlg32', + 'winspool', 'winmm', 'shell32', 'oldnames', 'comctl32', + 'ctl3d32', 'odbc32', 'ole32', 'oleaut32', 'uuid', 'rpcrt4', + 'advapi32', 'wsock32'] + + cflags = None + lflags = None + + if not FINAL and HYBRID: + cflags = ['/Z7', '/Od'] + lflags = ['/DEBUG'] + + +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] + ' ' + \ + os.popen('gtk-config --libs', 'r').read()[:-1] + lflags = string.split(lflags) + + +else: + raise 'Sorry Charlie...' + + + +#---------------------------------------------------------------------- +# Define the CORE extension module +#---------------------------------------------------------------------- + +print 'Preparing CORE...' +swig_force = force +swig_args = ['-c++', '-shadow', '-python', '-keyword', '-dnone', + '-I./src', '-D'+WXPLAT] + +swig_files = [ 'wx.i', 'windows.i', 'windows2.i', 'windows3.i', 'events.i', + 'misc.i', 'misc2.i', 'utils.i', 'gdi.i', 'mdi.i', 'controls.i', + 'controls2.i', 'cmndlgs.i', 'stattool.i', 'frames.i', 'image.i', + 'printfw.i', 'sizers.i', 'clip_dnd.i', 'grid.i', 'html.i', + 'htmlhelp.i', 'calendar.i', + ] + +swig_sources = run_swig(swig_files, 'src', GENDIR, PKGDIR, + USE_SWIG, swig_force, swig_args) + +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 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) + +if os.name == 'nt': + libs = libs[:] + if debug: + libs.insert(0, 'wxc_d') + else: + libs.insert(0, 'wxc') + +#---------------------------------------------------------------------- +# Define the GLCanvas extension module +#---------------------------------------------------------------------- + +if BUILD_GLCANVAS: + 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) + + 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'] + + ext = Extension('glcanvasc', + swig_sources, + + include_dirs = includes, + define_macros = defines, + + library_dirs = libdirs, + libraries = libs + gl_libs, + + extra_compile_args = cflags, + extra_link_args = lflags, + ) + + wxpExtensions.append(ext) + +#---------------------------------------------------------------------- +# Define the OGL extension module +#---------------------------------------------------------------------- + +if BUILD_OGL: + 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) + + # 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) + + ext = Extension('oglc', [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, + + 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 BUILD_STC: + 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], + [STC_H+'/stc.h']) + + # copy a projext 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 = 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/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, + + include_dirs = stc_includes, + define_macros = stc_defines, + + library_dirs = libdirs, + libraries = libs, + + extra_compile_args = cflags, + extra_link_args = lflags, + ) + + wxpExtensions.append(ext) + + +#---------------------------------------------------------------------- +# 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', + PKGDIR+'.lib.sizers' + ], + + ext_package = PKGDIR, + ext_modules = wxpExtensions, + + ) + +