From 35fae9d019352dcef01a44944d0096c4c33bbda0 Mon Sep 17 00:00:00 2001 From: "Adam C. Foltzer" Date: Wed, 14 Jun 2017 11:50:35 -0700 Subject: fix failing Rust test cases --- mesonbuild/backend/ninjabackend.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'mesonbuild/backend') diff --git a/mesonbuild/backend/ninjabackend.py b/mesonbuild/backend/ninjabackend.py index 8da75c0..40f0918 100644 --- a/mesonbuild/backend/ninjabackend.py +++ b/mesonbuild/backend/ninjabackend.py @@ -1188,8 +1188,21 @@ int dummy; # against are dynamic, otherwise we'll end up with # multiple implementations of crates args += ['-C', 'prefer-dynamic'] + # build the usual rpath arguments as well... + + # Set runtime-paths so we can run executables without needing to set + # LD_LIBRARY_PATH, etc in the environment. Doesn't work on Windows. + if '/' in target.name or '\\' in target.name: + # Target names really should not have slashes in them, but + # unfortunately we did not check for that and some downstream projects + # now have them. Once slashes are forbidden, remove this bit. + target_slashname_workaround_dir = os.path.join(os.path.split(target.name)[0], + self.get_target_dir(target)) + else: + target_slashname_workaround_dir = self.get_target_dir(target) rpath_args = rustc.build_rpath_args(self.environment.get_build_dir(), + target_slashname_workaround_dir, self.determine_rpath_dirs(target), target.install_rpath) # ... but then add rustc's sysroot to account for rustup -- cgit v1.1