diff options
author | Kramer Peace <kpeace1@gmail.com> | 2019-09-02 14:23:11 +0300 |
---|---|---|
committer | Dylan Baker <dylan@pnwbakers.com> | 2019-09-05 08:38:56 -0700 |
commit | fb9a5ce8672a01b4b82d10fe2518a047dc532da9 (patch) | |
tree | 55115636518d01cd3b26f3e16fd18733f530dabb /mesonbuild/linkers.py | |
parent | bd37147b4b46081c58e0b15f6a0f0123099b27b1 (diff) | |
download | meson-fb9a5ce8672a01b4b82d10fe2518a047dc532da9.zip meson-fb9a5ce8672a01b4b82d10fe2518a047dc532da9.tar.gz meson-fb9a5ce8672a01b4b82d10fe2518a047dc532da9.tar.bz2 |
Add a CUDA linker object
Fixes issue #5870
Diffstat (limited to 'mesonbuild/linkers.py')
-rw-r--r-- | mesonbuild/linkers.py | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/mesonbuild/linkers.py b/mesonbuild/linkers.py index 272f927..7db7d09 100644 --- a/mesonbuild/linkers.py +++ b/mesonbuild/linkers.py @@ -909,3 +909,32 @@ class OptlinkDynamicLinker(VisualStudioLikeLinkerMixin, DynamicLinker): def get_allow_undefined_args(self) -> typing.List[str]: return [] + +class CudaLinker(DynamicLinker): + """Cuda linker (nvlink)""" + @staticmethod + def parse_version(): + version_cmd = ['nvlink', '--version'] + try: + _, out, _ = mesonlib.Popen_safe(version_cmd) + except OSError: + return 'unknown version' + # Output example: + # nvlink: NVIDIA (R) Cuda linker + # Copyright (c) 2005-2018 NVIDIA Corporation + # Built on Sun_Sep_30_21:09:22_CDT_2018 + # Cuda compilation tools, release 10.0, V10.0.166 + # we need the most verbose version output. Luckily starting with V + return out.strip().split('V')[-1] + + def get_output_args(self, outname: str) -> typing.List[str]: + return ['-o', outname] + + def get_search_args(self, dirname: str) -> typing.List[str]: + return ['-L', dirname] + + def fatal_warnings(self) -> typing.List[str]: + return ['--warning-as-error'] + + def get_allow_undefined_args(self) -> typing.List[str]: + return [] |