aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--mesonbuild/environment.py17
1 files changed, 17 insertions, 0 deletions
diff --git a/mesonbuild/environment.py b/mesonbuild/environment.py
index 5272a73..4be412f 100644
--- a/mesonbuild/environment.py
+++ b/mesonbuild/environment.py
@@ -60,7 +60,10 @@ from .compilers import (
ElbrusFortranCompiler,
IntelCCompiler,
IntelCPPCompiler,
+ IntelClCCompiler,
+ IntelClCPPCompiler,
IntelFortranCompiler,
+ IntelClFortranCompiler,
JavaCompiler,
MonoCompiler,
CudaCompiler,
@@ -677,8 +680,12 @@ class Environment:
arg = '--vsn'
elif 'ccrx' in compiler[0]:
arg = '-v'
+ elif 'icl' in compiler[0]:
+ # if you pass anything to icl you get stuck in a pager
+ arg = ''
else:
arg = '--version'
+
try:
p, out, err = Popen_safe(compiler + [arg])
except OSError as e:
@@ -753,6 +760,11 @@ class Environment:
compiler_type = CompilerType.CLANG_STANDARD
cls = ClangCCompiler if lang == 'c' else ClangCPPCompiler
return cls(ccache + compiler, version, compiler_type, is_cross, exe_wrap, full_version=full_version)
+ if 'Intel(R) C++ Intel(R)' in err:
+ version = search_version(err)
+ target = 'x86' if 'IA-32' in err else 'x86_64'
+ cls = IntelClCCompiler if lang == 'c' else IntelClCPPCompiler
+ return cls(compiler, version, is_cross, exe_wrap, target)
if 'Microsoft' in out or 'Microsoft' in err:
# Latest versions of Visual Studio print version
# number to stderr but earlier ones print version
@@ -886,6 +898,11 @@ class Environment:
version = search_version(err)
return SunFortranCompiler(compiler, version, is_cross, exe_wrap, full_version=full_version)
+ if 'Intel(R) Visual Fortran' in err:
+ version = search_version(err)
+ target = 'x86' if 'IA-32' in err else 'x86_64'
+ return IntelClFortranCompiler(compiler, version, is_cross, target, exe_wrap)
+
if 'ifort (IFORT)' in out:
return IntelFortranCompiler(compiler, version, is_cross, exe_wrap, full_version=full_version)