aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/environment.py
diff options
context:
space:
mode:
authorJussi Pakkanen <jpakkane@gmail.com>2020-08-22 18:31:56 +0300
committerGitHub <noreply@github.com>2020-08-22 18:31:56 +0300
commitc42298e1460f838710bfe1d33b5635bec25fa8ba (patch)
treefd8ab90e7626d52698b3b6fe86c397932d8a5359 /mesonbuild/environment.py
parentfbc6d50acc2c6bbe67d5ac2c5432163fb3e7bd39 (diff)
parent0c5f3c7483c147652463a024aafe4bcb6bc8946c (diff)
downloadmeson-c42298e1460f838710bfe1d33b5635bec25fa8ba.zip
meson-c42298e1460f838710bfe1d33b5635bec25fa8ba.tar.gz
meson-c42298e1460f838710bfe1d33b5635bec25fa8ba.tar.bz2
Merge pull request #7447 from scivision/nvc
Add support for NVidia HPC SDK compilers
Diffstat (limited to 'mesonbuild/environment.py')
-rw-r--r--mesonbuild/environment.py27
1 files changed, 24 insertions, 3 deletions
diff --git a/mesonbuild/environment.py b/mesonbuild/environment.py
index da2d513..18ecff4 100644
--- a/mesonbuild/environment.py
+++ b/mesonbuild/environment.py
@@ -58,6 +58,8 @@ from .linkers import (
QualcommLLVMDynamicLinker,
MSVCDynamicLinker,
OptlinkDynamicLinker,
+ NvidiaHPC_DynamicLinker,
+ NvidiaHPC_StaticLinker,
PGIDynamicLinker,
PGIStaticLinker,
SolarisDynamicLinker,
@@ -105,6 +107,9 @@ from .compilers import (
NAGFortranCompiler,
Open64FortranCompiler,
PathScaleFortranCompiler,
+ NvidiaHPC_CCompiler,
+ NvidiaHPC_CPPCompiler,
+ NvidiaHPC_FortranCompiler,
PGICCompiler,
PGICPPCompiler,
PGIFortranCompiler,
@@ -768,11 +773,11 @@ class Environment:
self.default_objc = []
self.default_objcpp = []
else:
- self.default_c = ['cc', 'gcc', 'clang', 'pgcc', 'icc']
- self.default_cpp = ['c++', 'g++', 'clang++', 'pgc++', 'icpc']
+ self.default_c = ['cc', 'gcc', 'clang', 'nvc', 'pgcc', 'icc']
+ self.default_cpp = ['c++', 'g++', 'clang++', 'nvc++', 'pgc++', 'icpc']
self.default_objc = ['cc', 'gcc', 'clang']
self.default_objcpp = ['c++', 'g++', 'clang++']
- self.default_fortran = ['gfortran', 'flang', 'pgfortran', 'ifort', 'g95']
+ self.default_fortran = ['gfortran', 'flang', 'nvfortran', 'pgfortran', 'ifort', 'g95']
self.default_cs = ['mcs', 'csc']
self.default_d = ['ldc2', 'ldc', 'gdc', 'dmd']
self.default_java = ['javac']
@@ -1303,6 +1308,13 @@ class Environment:
return cls(
ccache + compiler, version, for_machine, is_cross,
info, exe_wrap, linker=linker)
+ if 'NVIDIA Compilers and Tools' in out:
+ cls = NvidiaHPC_CCompiler if lang == 'c' else NvidiaHPC_CPPCompiler
+ self.coredata.add_lang_args(cls.language, cls, for_machine, self)
+ linker = NvidiaHPC_DynamicLinker(compiler, for_machine, cls.LINKER_PREFIX, [], version=version)
+ return cls(
+ ccache + compiler, version, for_machine, is_cross,
+ info, exe_wrap, linker=linker)
if '(ICC)' in out:
cls = IntelCCompiler if lang == 'c' else IntelCPPCompiler
l = self._guess_nix_linker(compiler, cls, for_machine)
@@ -1474,6 +1486,15 @@ class Environment:
compiler, version, for_machine, is_cross, info, exe_wrap,
full_version=full_version, linker=linker)
+ if 'NVIDIA Compilers and Tools' in out:
+ cls = NvidiaHPC_FortranCompiler
+ self.coredata.add_lang_args(cls.language, cls, for_machine, self)
+ linker = PGIDynamicLinker(compiler, for_machine,
+ cls.LINKER_PREFIX, [], version=version)
+ return cls(
+ compiler, version, for_machine, is_cross, info, exe_wrap,
+ full_version=full_version, linker=linker)
+
if 'flang' in out or 'clang' in out:
linker = self._guess_nix_linker(
compiler, FlangFortranCompiler, for_machine)