diff options
author | Dylan Baker <dylan@pnwbakers.com> | 2019-08-27 14:50:10 -0700 |
---|---|---|
committer | Jussi Pakkanen <jpakkane@gmail.com> | 2019-08-30 00:01:32 +0300 |
commit | 0efab591da210418e0d618449be2f9462d5d58e8 (patch) | |
tree | b2fb1641b336c8262b1ec2e4da5d6cec12046241 /mesonbuild/compilers/cuda.py | |
parent | 3256e7ea63edb8508d1a2aac45da02e5c452df2c (diff) | |
download | meson-0efab591da210418e0d618449be2f9462d5d58e8.zip meson-0efab591da210418e0d618449be2f9462d5d58e8.tar.gz meson-0efab591da210418e0d618449be2f9462d5d58e8.tar.bz2 |
compilers: Move the compiler argument to proxy linker flags to the compiler class
Instead of the DynamicLinker returning a hardcoded value like
`-Wl,-foo`, it now is passed a value that could be '-Wl,', or could be
something '-Xlinker='
This makes a few things cleaner, and will make it possible to fix using
clang (not clang-cl) on windows, where it invokes either link.exe or
lld-link.exe instead of a gnu-ld compatible linker.
Diffstat (limited to 'mesonbuild/compilers/cuda.py')
-rw-r--r-- | mesonbuild/compilers/cuda.py | 16 |
1 files changed, 5 insertions, 11 deletions
diff --git a/mesonbuild/compilers/cuda.py b/mesonbuild/compilers/cuda.py index b6bafe7..3bcabf5 100644 --- a/mesonbuild/compilers/cuda.py +++ b/mesonbuild/compilers/cuda.py @@ -25,6 +25,9 @@ if typing.TYPE_CHECKING: class CudaCompiler(Compiler): + + LINKER_PREFIX = '-Xlinker=' + def __init__(self, exelist, version, for_machine: MachineChoice, is_cross, exe_wrapper=None, **kwargs): if not hasattr(self, 'language'): self.language = 'cuda' @@ -162,17 +165,8 @@ class CudaCompiler(Compiler): @staticmethod def _cook_link_args(args: typing.List[str]) -> typing.List[str]: - """ - Converts GNU-style arguments -Wl,-arg,-arg - to NVCC-style arguments -Xlinker=-arg,-arg - """ - cooked = [] # type: typing.List[str] - for arg in args: - if arg.startswith('-Wl,'): - arg = arg.replace('-Wl,', '-Xlinker=', 1) - arg = arg.replace(' ', '\\') - cooked.append(arg) - return cooked + """Fixup arguments.""" + return [a.replace(' ', '\\') for a in args] def name_string(self): return ' '.join(self.exelist) |