aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/backend/backends.py
diff options
context:
space:
mode:
authorJussi Pakkanen <jpakkane@gmail.com>2019-01-06 02:58:53 +0200
committerJussi Pakkanen <jpakkane@gmail.com>2019-01-07 23:09:24 +0200
commitd085002d18f64e7ba91449f8b726a00b8e728a0a (patch)
treeacbc880d6368431e5e23880350202da2338fc914 /mesonbuild/backend/backends.py
parentf2223fcf541e6e5d6d384c54ca3f911716f86c60 (diff)
downloadmeson-d085002d18f64e7ba91449f8b726a00b8e728a0a.zip
meson-d085002d18f64e7ba91449f8b726a00b8e728a0a.tar.gz
meson-d085002d18f64e7ba91449f8b726a00b8e728a0a.tar.bz2
Calculate target paths correctly when workdir is set.
Diffstat (limited to 'mesonbuild/backend/backends.py')
-rw-r--r--mesonbuild/backend/backends.py9
1 files changed, 8 insertions, 1 deletions
diff --git a/mesonbuild/backend/backends.py b/mesonbuild/backend/backends.py
index 39aa365..0637905 100644
--- a/mesonbuild/backend/backends.py
+++ b/mesonbuild/backend/backends.py
@@ -725,7 +725,7 @@ class Backend:
elif isinstance(a, str):
cmd_args.append(a)
elif isinstance(a, build.Target):
- cmd_args.append(self.get_target_filename(a))
+ cmd_args.append(self.construct_target_rel_path(a, t.workdir))
else:
raise MesonException('Bad object in test command.')
ts = TestSerialisation(t.get_name(), t.project_name, t.suite, cmd, is_cross,
@@ -737,6 +737,13 @@ class Backend:
def write_test_serialisation(self, tests, datafile):
pickle.dump(self.create_test_serialisation(tests), datafile)
+ def construct_target_rel_path(self, a, workdir):
+ if workdir is None:
+ return self.get_target_filename(a)
+ assert(os.path.isabs(workdir))
+ abs_path = self.get_target_filename_abs(a)
+ return os.path.relpath(abs_path, workdir)
+
def generate_depmf_install(self, d):
if self.build.dep_manifest_name is None:
return