|
From: <ef...@us...> - 2008-11-08 18:33:06
|
Revision: 6376
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=6376&view=rev
Author: efiring
Date: 2008-11-08 18:33:01 +0000 (Sat, 08 Nov 2008)
Log Message:
-----------
Improve error reporting when pygtk or gtk+ headers are missing.
Modified Paths:
--------------
trunk/matplotlib/setupext.py
Modified: trunk/matplotlib/setupext.py
===================================================================
--- trunk/matplotlib/setupext.py 2008-11-08 17:08:25 UTC (rev 6375)
+++ trunk/matplotlib/setupext.py 2008-11-08 18:33:01 UTC (rev 6376)
@@ -235,7 +235,8 @@
def get_pkgconfig(module,
packages,
flags="--libs --cflags",
- pkg_config_exec='pkg-config'):
+ pkg_config_exec='pkg-config',
+ report_error=False):
"""Loosely based on an article in the Python Cookbook:
http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/502261"""
if not has_pkgconfig():
@@ -247,8 +248,8 @@
'-D': 'define_macros',
'-U': 'undef_macros'}
- status, output = commands.getstatusoutput(
- "%s %s %s" % (pkg_config_exec, flags, packages))
+ cmd = "%s %s %s" % (pkg_config_exec, flags, packages)
+ status, output = commands.getstatusoutput(cmd)
if status == 0:
for token in output.split():
attr = _flags.get(token[:2], None)
@@ -266,6 +267,9 @@
if token not in module.extra_link_args:
module.extra_link_args.append(token)
return True
+ if report_error:
+ print_status("pkg-config", "looking for %s" % packages)
+ print_message(output)
return False
def get_pkgconfig_version(package):
@@ -642,6 +646,7 @@
explanation = (
"Could not find Gtk+ headers in any of %s" %
", ".join(["'%s'" % x for x in module.include_dirs]))
+ gotit = False
def ver2str(tup):
return ".".join([str(x) for x in tup])
@@ -718,8 +723,10 @@
if sys.platform != 'win32':
# If Gtk+ is installed, pkg-config is required to be installed
add_base_flags(module)
- get_pkgconfig(module, 'pygtk-2.0 gtk+-2.0')
-
+ ok = get_pkgconfig(module, 'pygtk-2.0 gtk+-2.0', report_error=True)
+ if not ok:
+ print_message(
+ "You may need to install 'dev' package(s) to provide header files.")
# visual studio doesn't need the math library
if sys.platform == 'win32' and win32_compiler == 'msvc' and 'm' in module.libraries:
module.libraries.remove('m')
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|