diff options
-rw-r--r-- | scipy_distutils/ccompiler.py | 27 | ||||
-rw-r--r-- | scipy_distutils/fcompiler.py | 18 |
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: |