diff options
-rw-r--r-- | mesonbuild/backend/ninjabackend.py | 2 | ||||
-rw-r--r-- | mesonbuild/interpreter.py | 2 | ||||
-rw-r--r-- | test cases/common/58 run target/meson.build | 3 |
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.")') |