diff options
author | Jussi Pakkanen <jpakkane@gmail.com> | 2019-01-06 02:58:53 +0200 |
---|---|---|
committer | Jussi Pakkanen <jpakkane@gmail.com> | 2019-01-07 23:09:24 +0200 |
commit | d085002d18f64e7ba91449f8b726a00b8e728a0a (patch) | |
tree | acbc880d6368431e5e23880350202da2338fc914 /mesonbuild | |
parent | f2223fcf541e6e5d6d384c54ca3f911716f86c60 (diff) | |
download | meson-d085002d18f64e7ba91449f8b726a00b8e728a0a.zip meson-d085002d18f64e7ba91449f8b726a00b8e728a0a.tar.gz meson-d085002d18f64e7ba91449f8b726a00b8e728a0a.tar.bz2 |
Calculate target paths correctly when workdir is set.
Diffstat (limited to 'mesonbuild')
-rw-r--r-- | mesonbuild/backend/backends.py | 9 |
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 |