aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/backend/ninjabackend.py
diff options
context:
space:
mode:
authorDylan Baker <dylan@pnwbakers.com>2019-12-03 11:59:49 -0800
committerDylan Baker <dylan@pnwbakers.com>2019-12-03 13:08:42 -0800
commitd8561180061f271fde9a5d782853930d59280c06 (patch)
tree32d0306e6299245101bdfcbb0f6e3a71e59f1e4d /mesonbuild/backend/ninjabackend.py
parenta1bfd22120c219a9190559b1fdc4ba29d8e59783 (diff)
downloadmeson-d8561180061f271fde9a5d782853930d59280c06.zip
meson-d8561180061f271fde9a5d782853930d59280c06.tar.gz
meson-d8561180061f271fde9a5d782853930d59280c06.tar.bz2
environment: Fix selecting the linker with rustc
Diffstat (limited to 'mesonbuild/backend/ninjabackend.py')
-rw-r--r--mesonbuild/backend/ninjabackend.py9
1 files changed, 8 insertions, 1 deletions
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))