|
|
|
@ -68,11 +68,11 @@ else: |
|
|
|
|
defaults['objc'] = ['clang'] |
|
|
|
|
defaults['objcpp'] = ['clang++'] |
|
|
|
|
else: |
|
|
|
|
defaults['c'] = ['cc', 'gcc', 'clang', 'nvc', 'pgcc', 'icc'] |
|
|
|
|
defaults['cpp'] = ['c++', 'g++', 'clang++', 'nvc++', 'pgc++', 'icpc'] |
|
|
|
|
defaults['c'] = ['cc', 'gcc', 'clang', 'nvc', 'pgcc', 'icc', 'icx'] |
|
|
|
|
defaults['cpp'] = ['c++', 'g++', 'clang++', 'nvc++', 'pgc++', 'icpc', 'icpx'] |
|
|
|
|
defaults['objc'] = ['cc', 'gcc', 'clang'] |
|
|
|
|
defaults['objcpp'] = ['c++', 'g++', 'clang++'] |
|
|
|
|
defaults['fortran'] = ['gfortran', 'flang', 'nvfortran', 'pgfortran', 'ifort', 'g95'] |
|
|
|
|
defaults['fortran'] = ['gfortran', 'flang', 'nvfortran', 'pgfortran', 'ifort', 'ifx', 'g95'] |
|
|
|
|
defaults['cs'] = ['mcs', 'csc'] |
|
|
|
|
defaults['d'] = ['ldc2', 'ldc', 'gdc', 'dmd'] |
|
|
|
|
defaults['java'] = ['javac'] |
|
|
|
@ -465,6 +465,15 @@ def _detect_c_or_cpp_compiler(env: 'Environment', lang: str, for_machine: Machin |
|
|
|
|
return cls( |
|
|
|
|
compiler, version, for_machine, is_cross, info, target, |
|
|
|
|
exe_wrap, linker=linker) |
|
|
|
|
if 'Intel(R) oneAPI DPC++/C++ Compiler for applications' in err: |
|
|
|
|
version = search_version(err) |
|
|
|
|
target = 'x86' if 'IA-32' in err else 'x86_64' |
|
|
|
|
cls = c.IntelLLVMClCCompiler if lang == 'c' else cpp.IntelLLVMClCPPCompiler |
|
|
|
|
env.coredata.add_lang_args(cls.language, cls, for_machine, env) |
|
|
|
|
linker = linkers.XilinkDynamicLinker(for_machine, [], version=version) |
|
|
|
|
return cls( |
|
|
|
|
compiler, version, for_machine, is_cross, info, target, |
|
|
|
|
exe_wrap, linker=linker) |
|
|
|
|
if 'Microsoft' in out or 'Microsoft' in err: |
|
|
|
|
# Latest versions of Visual Studio print version |
|
|
|
|
# number to stderr but earlier ones print version |
|
|
|
@ -513,6 +522,12 @@ def _detect_c_or_cpp_compiler(env: 'Environment', lang: str, for_machine: Machin |
|
|
|
|
return cls( |
|
|
|
|
ccache + compiler, version, for_machine, is_cross, info, |
|
|
|
|
exe_wrap, full_version=full_version, linker=l) |
|
|
|
|
if 'Intel(R) oneAPI' in out: |
|
|
|
|
cls = c.IntelLLVMCCompiler if lang == 'c' else cpp.IntelLLVMCPPCompiler |
|
|
|
|
l = guess_nix_linker(env, compiler, cls, version, for_machine) |
|
|
|
|
return cls( |
|
|
|
|
ccache + compiler, version, for_machine, is_cross, info, |
|
|
|
|
exe_wrap, full_version=full_version, linker=l) |
|
|
|
|
if 'TMS320C2000 C/C++' in out or 'MSP430 C/C++' in out or 'TI ARM C/C++ Compiler' in out: |
|
|
|
|
lnk: T.Union[T.Type[linkers.C2000DynamicLinker], T.Type[linkers.TIDynamicLinker]] |
|
|
|
|
if 'TMS320C2000 C/C++' in out: |
|
|
|
@ -673,6 +688,16 @@ def detect_fortran_compiler(env: 'Environment', for_machine: MachineChoice) -> C |
|
|
|
|
compiler, version, for_machine, is_cross, info, |
|
|
|
|
exe_wrap, full_version=full_version, linker=linker) |
|
|
|
|
|
|
|
|
|
if 'Intel(R) Fortran Compiler for applications' in err: |
|
|
|
|
version = search_version(err) |
|
|
|
|
target = 'x86' if 'IA-32' in err else 'x86_64' |
|
|
|
|
cls = fortran.IntelLLVMClFortranCompiler |
|
|
|
|
env.coredata.add_lang_args(cls.language, cls, for_machine, env) |
|
|
|
|
linker = linkers.XilinkDynamicLinker(for_machine, [], version=version) |
|
|
|
|
return cls( |
|
|
|
|
compiler, version, for_machine, is_cross, info, |
|
|
|
|
target, exe_wrap, linker=linker) |
|
|
|
|
|
|
|
|
|
if 'Intel(R) Visual Fortran' in err or 'Intel(R) Fortran' in err: |
|
|
|
|
version = search_version(err) |
|
|
|
|
target = 'x86' if 'IA-32' in err else 'x86_64' |
|
|
|
@ -690,6 +715,13 @@ def detect_fortran_compiler(env: 'Environment', for_machine: MachineChoice) -> C |
|
|
|
|
compiler, version, for_machine, is_cross, info, |
|
|
|
|
exe_wrap, full_version=full_version, linker=linker) |
|
|
|
|
|
|
|
|
|
if 'ifx (IFORT)' in out: |
|
|
|
|
cls = fortran.IntelLLVMFortranCompiler |
|
|
|
|
linker = guess_nix_linker(env, compiler, cls, version, for_machine) |
|
|
|
|
return cls( |
|
|
|
|
compiler, version, for_machine, is_cross, info, |
|
|
|
|
exe_wrap, full_version=full_version, linker=linker) |
|
|
|
|
|
|
|
|
|
if 'PathScale EKOPath(tm)' in err: |
|
|
|
|
return fortran.PathScaleFortranCompiler( |
|
|
|
|
compiler, version, for_machine, is_cross, info, |
|
|
|
|