diff options
author | Jussi Pakkanen <jpakkane@gmail.com> | 2016-09-07 23:04:11 +0300 |
---|---|---|
committer | Jussi Pakkanen <jpakkane@gmail.com> | 2016-09-07 23:04:11 +0300 |
commit | 9235fd4ec1cfdea9f1c73719c80607ee0cdad39b (patch) | |
tree | 39d8ff868ec3a384c407f1e8859d8c55a7e25651 | |
parent | 3f62fb788beea1ac32d514d549fdaeaaae0f3292 (diff) | |
download | meson-9235fd4ec1cfdea9f1c73719c80607ee0cdad39b.zip meson-9235fd4ec1cfdea9f1c73719c80607ee0cdad39b.tar.gz meson-9235fd4ec1cfdea9f1c73719c80607ee0cdad39b.tar.bz2 |
Permit use of file objects in run targets.
-rw-r--r-- | mesonbuild/backend/ninjabackend.py | 2 | ||||
-rw-r--r-- | mesonbuild/interpreter.py | 4 | ||||
-rw-r--r-- | test cases/common/58 run target/meson.build | 3 |
3 files changed, 7 insertions, 2 deletions
diff --git a/mesonbuild/backend/ninjabackend.py b/mesonbuild/backend/ninjabackend.py index e81c407..adf9b71 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.') 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) diff --git a/test cases/common/58 run target/meson.build b/test cases/common/58 run target/meson.build index 0febe35..0ef1966 100644 --- a/test cases/common/58 run target/meson.build +++ b/test cases/common/58 run target/meson.build @@ -34,3 +34,6 @@ run_target('upload2', python3 = find_program('python3') run_target('py3hi', command : [python3, '-c', 'print("I am Python3.")']) + +run_target('ct_in_arg', + command : ['echo', hex, files('helloprinter.c')]) |