aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild
diff options
context:
space:
mode:
authorJussi Pakkanen <jpakkane@gmail.com>2016-09-08 21:51:05 +0300
committerGitHub <noreply@github.com>2016-09-08 21:51:05 +0300
commitb1e4b8e1432b3883299e199b98e00e29bf8c2762 (patch)
treeb90a03674c993b08d2564dfa79451c0592de5b7b /mesonbuild
parent5d30ea99ea8c3d050b9341f3d779770d017663ed (diff)
parentd26ab47072906d7a28a8843617487e601b56dfb2 (diff)
downloadmeson-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.py5
-rw-r--r--mesonbuild/interpreter.py4
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)