X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/ef407a4e1131916040f6fa2369441a65544277bb..42f8298f6f42d5d63bb3caf65682b7d9d9f8b702:/wxPython/config.py diff --git a/wxPython/config.py b/wxPython/config.py index 31735f0c18..b9ebe12e74 100644 --- a/wxPython/config.py +++ b/wxPython/config.py @@ -38,9 +38,9 @@ import distutils.command.clean VER_MAJOR = 2 # The first three must match wxWidgets VER_MINOR = 5 -VER_RELEASE = 3 -VER_SUBREL = 1 # wxPython release num for x.y.z release of wxWidgets -VER_FLAGS = "rc3" # release flags, such as prerelease num, unicode, etc. +VER_RELEASE = 4 +VER_SUBREL = 0 # wxPython release num for x.y.z release of wxWidgets +VER_FLAGS = "pre" # release flags, such as prerelease num, unicode, etc. DESCRIPTION = "Cross platform GUI toolkit for Python" AUTHOR = "Robin Dunn" @@ -266,6 +266,37 @@ for option in ['WX_CONFIG', 'WXDLLVER', 'BUILD_BASE', 'WXPORT', 'SWIG', sys.argv = filter(None, sys.argv) +#---------------------------------------------------------------------- +# build options file +#---------------------------------------------------------------------- + +build_options_template = """ +UNICODE=%d +UNDEF_NDEBUG=%d +INSTALL_MULTIVERSION=%d +FLAVOUR="%s" +EP_ADD_OPTS=%d +WX_CONFIG="%s" +WXPORT="%s" +MONOLITHIC=%d +FINAL=%d +HYBRID=%d +""" % (UNICODE, UNDEF_NDEBUG, INSTALL_MULTIVERSION, FLAVOUR, EP_ADD_OPTS, + WX_CONFIG, WXPORT, MONOLITHIC, FINAL, HYBRID) + +try: + from build_options import * +except: + build_options_file = os.path.join(os.path.dirname(__file__), "build_options.py") + if not os.path.exists(build_options_file): + try: + myfile = open(build_options_file, "w") + myfile.write(build_options_template) + myfile.close() + except: + print "WARNING: Unable to create build_options.py." + + #---------------------------------------------------------------------- # some helper functions #---------------------------------------------------------------------- @@ -337,9 +368,14 @@ def run_swig(files, dir, gendir, package, USE_SWIG, force, swig_args, if not cleaning and USE_SWIG: for dep in swig_deps: - if newer(dep, py_file) or newer(dep, cpp_file): - force = 1 - break + # this may fail for external builds, but it's not + # a fatal error, so keep going. + try: + if newer(dep, py_file) or newer(dep, cpp_file): + force = 1 + break + except: + pass if force or newer(i_file, py_file) or newer(i_file, cpp_file): ## we need forward slashes here even on win32 @@ -585,8 +621,6 @@ def getExtraPath(shortVer=True, addOpts=False): return ep - - #---------------------------------------------------------------------- # sanity checks @@ -631,7 +665,7 @@ if os.name == 'nt': WXDIR = '..' # assumes in CVS tree WXPLAT = '__WXMSW__' GENDIR = 'msw' - + includes = ['include', 'src', opj(WXDIR, 'lib', 'vc_dll', 'msw' + libFlag()), opj(WXDIR, 'include'), @@ -644,7 +678,7 @@ if os.name == 'nt': (WXPLAT, None), ('WXUSINGDLL', '1'), - ('SWIG_GLOBAL', None), + ('SWIG_TYPE_TABLE', '_wxPython_table'), ('WXP_USE_THREAD', '1'), ] @@ -698,7 +732,7 @@ if os.name == 'nt': elif os.name == 'posix': WXDIR = '..' includes = ['include', 'src'] - defines = [('SWIG_GLOBAL', None), + defines = [('SWIG_TYPE_TABLE', 'wxPython_type_table'), ('HAVE_CONFIG_H', None), ('WXP_USE_THREAD', '1'), ] @@ -733,7 +767,7 @@ elif os.name == 'posix': WXPREFIX = os.popen(WX_CONFIG + ' --prefix').read()[:-1] - if sys.platform[:6] == "darwin": + if sys.platform[:6] == "darwin" and WXPORT == 'mac': # Flags and such for a Darwin (Max OS X) build of Python WXPLAT = '__WXMAC__' GENDIR = 'mac' @@ -800,6 +834,20 @@ VERSION = "%s.%s.%s.%s%s" % (VER_MAJOR, VER_MINOR, VER_RELEASE, # SWIG defaults #---------------------------------------------------------------------- +# *.i files could live in the wxWidgets/wxPython/src dir, or in +# a subdirectory of the devel package. Let's specify both +# dirs as includes so we don't have to guess which is correct. + +wxfilesdir = "" +i_subdir = opj("include", "wx", "wxPython", "i_files") +if os.name != "nt": + wxfilesdir = opj(WXPREFIX, i_subdir) +else: + wxfilesdir = opj(WXPY_SRC, i_subdir) + +i_files_includes = [ '-I' + opj(WXPY_SRC, 'src'), + '-I' + wxfilesdir ] + swig_cmd = SWIG swig_force = force swig_args = ['-c++', @@ -810,11 +858,9 @@ swig_args = ['-c++', '-keyword', '-new_repr', '-modern', - - '-I' + opj(WXPY_SRC, 'src'), '-D'+WXPLAT, - '-noruntime' - ] + ] + i_files_includes + if UNICODE: swig_args.append('-DwxUSE_UNICODE') @@ -823,10 +869,7 @@ if FULL_DOCS: swig_deps = [ opj(WXPY_SRC, 'src/my_typemaps.i'), - opj(WXPY_SRC, 'src/my_fragments.i'), - opj(WXPY_SRC, 'src/common.swg'), - opj(WXPY_SRC, 'src/pyrun.swg'), - opj(WXPY_SRC, 'src/python.swg'), + opj(WXPY_SRC, 'src/pyfragments.swg'), ] depends = [ #'include/wx/wxPython/wxPython.h', @@ -851,7 +894,6 @@ except ImportError: #--------------------------------------------------------------------------- - renamerTemplateStart = """\ // A bunch of %rename directives generated by BuildRenamers in config.py // in order to remove the wx prefix from all global scope names.