diff options
author | Jussi Pakkanen <jpakkane@gmail.com> | 2016-09-08 21:51:05 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-09-08 21:51:05 +0300 |
commit | b1e4b8e1432b3883299e199b98e00e29bf8c2762 (patch) | |
tree | b90a03674c993b08d2564dfa79451c0592de5b7b /mesonbuild | |
parent | 5d30ea99ea8c3d050b9341f3d779770d017663ed (diff) | |
parent | d26ab47072906d7a28a8843617487e601b56dfb2 (diff) | |
download | meson-b1e4b8e1432b3883299e199b98e00e29bf8c2762.zip meson-b1e4b8e1432b3883299e199b98e00e29bf8c2762.tar.gz meson-b1e4b8e1432b3883299e199b98e00e29bf8c2762.tar.bz2 |
Merge pull request #768 from mesonbuild/rtfixes
Fixes for run_targets
Diffstat (limited to 'mesonbuild')
-rw-r--r-- | mesonbuild/backend/ninjabackend.py | 5 | ||||
-rw-r--r-- | mesonbuild/interpreter.py | 4 |
2 files changed, 7 insertions, 2 deletions
diff --git a/mesonbuild/backend/ninjabackend.py b/mesonbuild/backend/ninjabackend.py index e81c407..481b800 100644 --- a/mesonbuild/backend/ninjabackend.py +++ b/mesonbuild/backend/ninjabackend.py @@ -424,6 +424,8 @@ int dummy; elif isinstance(i, (build.BuildTarget, build.CustomTarget)): relfname = self.get_target_filename(i) arg_strings.append(os.path.join(self.environment.get_build_dir(), relfname)) + elif isinstance(i, mesonlib.File): + arg_strings.append(i.rel_to_builddir(self.build_to_src)) else: mlog.debug(str(i)) raise MesonException('Unreachable code in generate_run_target.') @@ -446,6 +448,9 @@ int dummy; cmd.append(abs_exe) elif isinstance(texe, dependencies.ExternalProgram): cmd += texe.get_command() + elif isinstance(texe, build.CustomTarget): + deps.append(self.get_target_filename(texe)) + cmd += [os.path.join(self.environment.get_build_dir(), self.get_target_filename(texe))] else: cmd.append(target.command) cmd += arg_strings diff --git a/mesonbuild/interpreter.py b/mesonbuild/interpreter.py index 0c53326..361e0aa 100644 --- a/mesonbuild/interpreter.py +++ b/mesonbuild/interpreter.py @@ -1873,12 +1873,12 @@ class Interpreter(): raise InterpreterException('Run_target needs at least one positional argument.') cleaned_args = [] - for i in all_args: + for i in mesonlib.flatten(all_args): try: i = i.held_object except AttributeError: pass - if not isinstance(i, (str, build.BuildTarget, build.CustomTarget, dependencies.ExternalProgram)): + if not isinstance(i, (str, build.BuildTarget, build.CustomTarget, dependencies.ExternalProgram, mesonlib.File)): mlog.debug('Wrong type:', str(i)) raise InterpreterException('Invalid argument to run_target.') cleaned_args.append(i) |