From 7658e67f92ba55e2d8e466f818293a001f34a65f Mon Sep 17 00:00:00 2001 From: Dylan Baker Date: Mon, 2 Dec 2019 12:52:42 -0800 Subject: backends/ninja: apply linker arguments when using rust This will be required to make switching the linker work with rust. --- mesonbuild/backend/ninjabackend.py | 2 ++ 1 file changed, 2 insertions(+) (limited to 'mesonbuild/backend/ninjabackend.py') diff --git a/mesonbuild/backend/ninjabackend.py b/mesonbuild/backend/ninjabackend.py index 3c5cdf0..9ff6f74 100644 --- a/mesonbuild/backend/ninjabackend.py +++ b/mesonbuild/backend/ninjabackend.py @@ -1293,6 +1293,8 @@ int dummy; else: raise InvalidArguments('Unknown target type for rustc.') args.append(cratetype) + if cratetype in {'bin', 'dylib'}: + args += rustc.linker.get_always_args() args += ['--crate-name', target.name] args += rustc.get_buildtype_args(self.get_option_for_target('buildtype', target)) args += rustc.get_debug_args(self.get_option_for_target('debug', target)) -- cgit v1.1 From d8561180061f271fde9a5d782853930d59280c06 Mon Sep 17 00:00:00 2001 From: Dylan Baker Date: Tue, 3 Dec 2019 11:59:49 -0800 Subject: environment: Fix selecting the linker with rustc --- mesonbuild/backend/ninjabackend.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'mesonbuild/backend/ninjabackend.py') diff --git a/mesonbuild/backend/ninjabackend.py b/mesonbuild/backend/ninjabackend.py index 9ff6f74..5630212 100644 --- a/mesonbuild/backend/ninjabackend.py +++ b/mesonbuild/backend/ninjabackend.py @@ -1293,8 +1293,15 @@ int dummy; else: raise InvalidArguments('Unknown target type for rustc.') args.append(cratetype) + + # If we're dynamically linking, add those arguments + # + # Rust is super annoying, calling -C link-arg foo does not work, it has + # to be -C link-arg=foo if cratetype in {'bin', 'dylib'}: - args += rustc.linker.get_always_args() + for a in rustc.linker.get_always_args(): + args += ['-C', 'link-arg={}'.format(a)] + args += ['--crate-name', target.name] args += rustc.get_buildtype_args(self.get_option_for_target('buildtype', target)) args += rustc.get_debug_args(self.get_option_for_target('debug', target)) -- cgit v1.1