MCPcopy Create free account
hub / github.com/numpy/numpy / _find_existing_fcompiler

Function _find_existing_fcompiler

numpy/distutils/fcompiler/__init__.py:803–838  ·  view source on GitHub ↗
(compiler_types,
                             osname=None, platform=None,
                             requiref90=False,
                             c_compiler=None)

Source from the content-addressed store, hash-verified

801 fcompiler_aliases[alias] = desc
802
803def _find_existing_fcompiler(compiler_types,
804 osname=None, platform=None,
805 requiref90=False,
806 c_compiler=None):
807 from numpy.distutils.core import get_distribution
808 dist = get_distribution(always=True)
809 for compiler_type in compiler_types:
810 v = None
811 try:
812 c = new_fcompiler(plat=platform, compiler=compiler_type,
813 c_compiler=c_compiler)
814 c.customize(dist)
815 v = c.get_version()
816 if requiref90 and c.compiler_f90 is None:
817 v = None
818 new_compiler = c.suggested_f90_compiler
819 if new_compiler:
820 log.warn('Trying %r compiler as suggested by %r '
821 'compiler for f90 support.' % (compiler_type,
822 new_compiler))
823 c = new_fcompiler(plat=platform, compiler=new_compiler,
824 c_compiler=c_compiler)
825 c.customize(dist)
826 v = c.get_version()
827 if v is not None:
828 compiler_type = new_compiler
829 if requiref90 and c.compiler_f90 is None:
830 raise ValueError('%s does not support compiling f90 codes, '
831 'skipping.' % (c.__class__.__name__))
832 except DistutilsModuleError:
833 log.debug("_find_existing_fcompiler: compiler_type='%s' raised DistutilsModuleError", compiler_type)
834 except CompilerNotFound:
835 log.debug("_find_existing_fcompiler: compiler_type='%s' not found", compiler_type)
836 if v is not None:
837 return compiler_type
838 return None
839
840def available_fcompilers_for_platform(osname=None, platform=None):
841 if osname is None:

Callers 1

get_default_fcompilerFunction · 0.85

Calls 5

get_distributionFunction · 0.90
new_fcompilerFunction · 0.85
customizeMethod · 0.80
warnMethod · 0.80
get_versionMethod · 0.45

Tested by

no test coverage detected