aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--mesonbuild/backend/ninjabackend.py2
-rw-r--r--mesonbuild/interpreter.py2
-rw-r--r--test cases/common/58 run target/meson.build3
3 files changed, 6 insertions, 1 deletions
diff --git a/mesonbuild/backend/ninjabackend.py b/mesonbuild/backend/ninjabackend.py
index 6ec5e3d..b583e62 100644
--- a/mesonbuild/backend/ninjabackend.py
+++ b/mesonbuild/backend/ninjabackend.py
@@ -425,6 +425,8 @@ int dummy;
if exe_wrap is not None:
cmd += [exe_wrap]
cmd.append(abs_exe)
+ elif isinstance(texe, dependencies.ExternalProgram):
+ cmd += texe.get_command()
else:
cmd.append(target.command)
cmd += arg_strings
diff --git a/mesonbuild/interpreter.py b/mesonbuild/interpreter.py
index e114ab2..c997e0e 100644
--- a/mesonbuild/interpreter.py
+++ b/mesonbuild/interpreter.py
@@ -1768,7 +1768,7 @@ class Interpreter():
i = i.held_object
except AttributeError:
pass
- if not isinstance(i, (str, build.BuildTarget, build.CustomTarget)):
+ if not isinstance(i, (str, build.BuildTarget, build.CustomTarget, dependencies.ExternalProgram)):
mlog.debug('Wrong type:', str(i))
raise InterpreterException('Invalid argument to run_target.')
cleaned_args.append(i)
diff --git a/test cases/common/58 run target/meson.build b/test cases/common/58 run target/meson.build
index 519adf5..fa25f2a 100644
--- a/test cases/common/58 run target/meson.build
+++ b/test cases/common/58 run target/meson.build
@@ -7,3 +7,6 @@ run_target('mycommand', 'scripts/script.sh')
exe = executable('helloprinter', 'helloprinter.c')
run_target('runhello', exe, 'argument')
+
+python3 = find_program('python3')
+run_target('py3hi', python3, '-c', 'print("I am Python3.")')