summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--scipy_distutils/ccompiler.py27
-rw-r--r--scipy_distutils/fcompiler.py18
2 files changed, 27 insertions, 18 deletions
diff --git a/scipy_distutils/ccompiler.py b/scipy_distutils/ccompiler.py
index d757a5bcd..fcd6f3c1c 100644
--- a/scipy_distutils/ccompiler.py
+++ b/scipy_distutils/ccompiler.py
@@ -7,6 +7,7 @@ import new
from distutils.ccompiler import *
from distutils import ccompiler
from distutils.sysconfig import customize_compiler
+from distutils.version import LooseVersion
import log
from exec_command import exec_command
@@ -98,6 +99,8 @@ def CCompiler_show_customization(self):
if not attr:
continue
log.info("compiler '%s' is set to %s" % (attrname,attr))
+ try: self.get_version()
+ except: pass
print '*'*80
print self.__class__
print compiler_to_string(self)
@@ -127,6 +130,30 @@ def CCompiler_customize(self, dist, need_cxx=0):
CCompiler.customize = new.instancemethod(\
CCompiler_customize,None,CCompiler)
+def CCompiler_get_version(self, force=0, ok_status=[0]):
+ """ Compiler version. Returns None if compiler is not available. """
+ if not force and hasattr(self,'version'):
+ return self.version
+ if not (hasattr(self,'version_cmd') and
+ hasattr(self,'version_pattern')):
+ log.warn('%s does not provide version_cmd and version_pattern attributes' \
+ % (self.__class__))
+ return
+
+ cmd = ' '.join(self.version_cmd)
+ status, output = exec_command(cmd,use_tee=0)
+ version = None
+ if status in ok_status:
+ m = re.match(self.version_pattern,output)
+ if m:
+ version = m.group('version')
+ assert version,`version`
+ version = LooseVersion(version)
+ self.version = version
+ return version
+
+CCompiler.get_version = new.instancemethod(\
+ CCompiler_get_version,None,CCompiler)
if sys.platform == 'win32':
compiler_class['mingw32'] = ('mingw32ccompiler', 'Mingw32CCompiler',
diff --git a/scipy_distutils/fcompiler.py b/scipy_distutils/fcompiler.py
index 879b39bff..b606b3b66 100644
--- a/scipy_distutils/fcompiler.py
+++ b/scipy_distutils/fcompiler.py
@@ -22,7 +22,6 @@ from distutils.errors import DistutilsModuleError,DistutilsArgError,\
from distutils.core import Command
from distutils.util import split_quoted
from distutils.fancy_getopt import FancyGetopt
-from distutils.version import LooseVersion
from distutils.sysconfig import get_config_var
from scipy_distutils.command.config_compiler import config_fc
@@ -273,23 +272,6 @@ class FCompiler(CCompiler):
""" List of compiler library directories. """
return self.library_dirs[:]
- def get_version(self, force=0, ok_status=[0]):
- """ Compiler version. Returns None if compiler is not available. """
- if not force and hasattr(self,'version'):
- return self.version
-
- cmd = ' '.join(self.version_cmd)
- status, output = exec_command(cmd,use_tee=0)
- version = None
- if status in ok_status:
- m = re.match(self.version_pattern,output)
- if m:
- version = m.group('version')
- assert version,`version`
- version = LooseVersion(version)
- self.version = version
- return version
-
############################################################
## Public methods: