aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/interpreter.py
diff options
context:
space:
mode:
authorJussi Pakkanen <jpakkane@gmail.com>2017-01-02 18:31:58 +0200
committerJussi Pakkanen <jpakkane@gmail.com>2017-01-02 23:52:50 +0200
commitb3d51abff20b36e8d0604eaf9e482c509e54f311 (patch)
treed68930595821188bb57cc67775205d39d63606ef /mesonbuild/interpreter.py
parent74f15263b6a9d7fe1f717235a7177e7e4a681d3d (diff)
downloadmeson-b3d51abff20b36e8d0604eaf9e482c509e54f311.zip
meson-b3d51abff20b36e8d0604eaf9e482c509e54f311.tar.gz
meson-b3d51abff20b36e8d0604eaf9e482c509e54f311.tar.bz2
Can put external programs to test suite exe wrappers directly.
Diffstat (limited to 'mesonbuild/interpreter.py')
-rw-r--r--mesonbuild/interpreter.py16
1 files changed, 15 insertions, 1 deletions
diff --git a/mesonbuild/interpreter.py b/mesonbuild/interpreter.py
index fb1ff20..eda6f07 100644
--- a/mesonbuild/interpreter.py
+++ b/mesonbuild/interpreter.py
@@ -2150,7 +2150,21 @@ requirements use the version keyword argument instead.''')
if re.fullmatch('[_a-zA-Z][_0-9a-zA-Z]*', setup_name) is None:
raise InterpreterException('Setup name may only contain alphanumeric characters.')
try:
- exe_wrapper = mesonlib.stringlistify(kwargs['exe_wrapper'])
+ inp = kwargs.get('exe_wrapper', [])
+ if not isinstance(inp, list):
+ inp = [inp]
+ exe_wrapper = []
+ for i in inp:
+ if hasattr(i, 'held_object'):
+ i = i.held_object
+ if isinstance(i, str):
+ exe_wrapper.append(i)
+ elif isinstance(i, dependencies.ExternalProgram):
+ if not i.found():
+ raise InterpreterException('Tried to use non-found external executable.')
+ exe_wrapper += i.get_command()
+ else:
+ raise InterpreterException('Exe wrapper can only contain strings or external binaries.')
except KeyError:
exe_wrapper = None
gdb = kwargs.get('gdb', False)