diff options
author | Johan Dahlin <zilch@src.gnome.org> | 2003-02-08 22:39:21 +0000 |
---|---|---|
committer | Johan Dahlin <zilch@src.gnome.org> | 2003-02-08 22:39:21 +0000 |
commit | 1920ba0212c27c60d97cb8aa8a6530a07fbf2bdc (patch) | |
tree | 51278e396c1335cd4b19bfb7a6d1550b8b44bcae | |
parent | bd804e22585a5cb60c5e2432e693e159d9b4299f (diff) | |
download | pygtk-1920ba0212c27c60d97cb8aa8a6530a07fbf2bdc.tar.gz |
Added.
* pygtk-2.0.pc.in (codegendir): Added.
* setup.py: Added Numeric and gtkgl support (gtkgl untested).
* dsextras.py: Updated.
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | dsextras.py | 42 | ||||
-rw-r--r-- | pygtk-2.0.pc.in | 1 | ||||
-rwxr-xr-x | setup.py | 24 |
4 files changed, 63 insertions, 10 deletions
@@ -1,5 +1,11 @@ 2003-02-08 Johan Dahlin <jdahlin@async.com.br> + * pygtk-2.0.pc.in (codegendir): Added. + + * setup.py: Added Numeric and gtkgl support (gtkgl untested). + + * dsextras.py: Updated. + * gtk/libglade.override (connect_many): Add PyErr_Clear() here. Since PyMapping_GetItemString will raise an AttributeError if the handler can't be found. diff --git a/dsextras.py b/dsextras.py index 620a8963..387d3dcc 100644 --- a/dsextras.py +++ b/dsextras.py @@ -61,6 +61,25 @@ class InstallLib(install_lib): def get_inputs(self): return install_lib.get_inputs(self) + self.local_inputs +def pkgc_version_check(name, longname, req_version): + is_installed = not os.system('pkg-config --exists %s' % name) + if not is_installed: + print "Could not find %s" % longname + return 0 + + orig_version = getoutput('pkg-config --modversion %s' % name) + version = map(int, orig_version.split('.')) + pkc_version = map(int, req_version.split('.')) + + if version >= pkc_version: + return 1 + else: + print "Warning: Too old version of %s" % longname + print " Need %s, but %s is installed" % \ + (self.pkc_version, orig_version) + self.can_build_ok = 0 + return 0 + class PkgConfigExtension(Extension): can_build_ok = None def __init__(self, **kwargs): @@ -68,7 +87,8 @@ class PkgConfigExtension(Extension): kwargs['include_dirs'] = self.get_include_dirs(name) + GLOBAL_INC kwargs['define_macros'] = GLOBAL_MACROS kwargs['libraries'] = self.get_libraries(name) - kwargs['library_dirs'] = self.get_library_dirs(name) + kwargs['library_dirs'] = self.get_library_dirs(name) + self.name = kwargs['name'] self.pkc_name = kwargs['pkc_name'] self.pkc_version = kwargs['pkc_version'] del kwargs['pkc_name'], kwargs['pkc_version'] @@ -93,7 +113,8 @@ class PkgConfigExtension(Extension): retval = os.system('pkg-config --exists %s' % self.pkc_name) if retval: - print "* Could not find %s." % self.pkc_name + print ("* %s.pc could not be found, bindings for %s" + " will not be built." % (self.pkc_name, self.name)) self.can_build_ok = 0 return 0 @@ -115,13 +136,15 @@ class PkgConfigExtension(Extension): pass class Template: - def __init__(self, override, output, defs, prefix, register=[]): + def __init__(self, override, output, defs, prefix, + register=[], load_types=None): self.override = override self.defs = defs self.register = register self.output = output self.prefix = prefix - + self.load_types = load_types + def check_dates(self): if not os.path.exists(self.output): return 0 @@ -158,6 +181,10 @@ class Template: dp.startParsing() register_types(dp) + if self.load_types: + globals = {} + execfile(self.load_types, globals) + dp = DefsParser(self.defs) dp.startParsing() register_types(dp) @@ -175,12 +202,15 @@ class TemplateExtension(PkgConfigExtension): defs = kwargs['defs'] output = defs[:-5] + '.c' override = kwargs['override'] + load_types = kwargs.get('load_types') self.templates = [] self.templates.append(Template(override, output, defs, 'py' + name, - kwargs['register'])) + kwargs['register'], load_types)) del kwargs['register'], kwargs['override'], kwargs['defs'] - + if load_types: + del kwargs['load_types'] + if kwargs.has_key('output'): kwargs['name'] = kwargs['output'] del kwargs['output'] diff --git a/pygtk-2.0.pc.in b/pygtk-2.0.pc.in index c950201a..85682144 100644 --- a/pygtk-2.0.pc.in +++ b/pygtk-2.0.pc.in @@ -10,6 +10,7 @@ pygtkincludedir=${includedir}/pygtk-2.0 # same here. Useful when calling the code generator in addon packages. defsdir=${datadir}/pygtk/2.0/defs +codegendir=${datadir}/pygtk/2.0/codegen Name: PyGTK Description: Python bindings for GTK+ and related libraries @@ -4,10 +4,8 @@ # # TODO: # pygtk.spec(.in) -# Numeric support # win32 testing # install *.pyc for codegen -# GtkGL # """Python Bindings for the GTK Widget Set. @@ -35,6 +33,7 @@ ATK_REQUIRED = '1.0.0' PANGO_REQUIRED = '1.0.0' GTK_REQUIRED = '2.0.0' LIBGLADE_REQUIRED = '2.0.0' +GTKGL_REQUIRED = '1.99.0' PYGTK_SUFFIX = '2.0' PYGTK_SUFFIX_LONG = 'gtk-' + PYGTK_SUFFIX @@ -144,6 +143,15 @@ gtk = TemplateExtension(name='gtk', pkc_name='gtk+-2.0', defs='gtk/gtk.defs') gtk.templates.append(gdk_template) +gtkgl = TemplateExtension(name='gtkgl', pkc_name='gtkgl-2.0', + pkc_version=LIBGLADE_REQUIRED, + output='gtk.gtkgl', + defs='gtk/gtkgl.defs', + sources=['gtk/gtkglmodule.c', + 'gtk/gtkgl.c'], + register=['gtk/gtk-types.defs', + 'gtk/gtkgl.defs'], + override='gtk/gtkgl.override') # Libglade libglade = TemplateExtension(name='libglade', pkc_name='libglade-2.0', pkc_version=LIBGLADE_REQUIRED, @@ -178,6 +186,12 @@ if pango.can_build(): ext_modules.append(pango) data_files.append((DEFS_DIR, ('pango.defs', 'pango-types.defs'))) if gtk.can_build(): + try: + import Numeric + GLOBAL_MACROS.append(('HAVE_NUMPY', 1)) + except ImportError: + print ('* Numeric module could not be found, ' + 'will build without Numeric support.') ext_modules.append(gtk) data_files.append((INCLUDE_DIR, ('gtk/pygtk.h',))) data_files.append((DEFS_DIR, ('gtk/gdk.defs', 'gtk/gdk-types.defs', @@ -187,7 +201,10 @@ if gtk.can_build(): if libglade.can_build(): ext_modules.append(libglade) data_files.append((DEFS_DIR, ('gtk/libglade.defs',))) - +if gtkgl.can_build(): + ext_modules.append(gtkgl) + data_files.append((DEFS_DIR, ('gtk/gtkgl.defs',))) + if '--enable-threading' in sys.argv: try: import thread @@ -202,7 +219,6 @@ if '--enable-threading' in sys.argv: module.extra_link_args += raw.split() raw = getoutput('pkg-config --cflags-only-I %s' % name) module.extra_compile_args.append(raw) - doclines = __doc__.split("\n") setup(name="pygtk", |