summaryrefslogtreecommitdiff
path: root/mesonbuild/scripts/meson_exe.py
diff options
context:
space:
mode:
Diffstat (limited to 'mesonbuild/scripts/meson_exe.py')
-rw-r--r--mesonbuild/scripts/meson_exe.py11
1 files changed, 8 insertions, 3 deletions
diff --git a/mesonbuild/scripts/meson_exe.py b/mesonbuild/scripts/meson_exe.py
index 620f5792d..27db14423 100644
--- a/mesonbuild/scripts/meson_exe.py
+++ b/mesonbuild/scripts/meson_exe.py
@@ -52,10 +52,13 @@ def run_exe(exe: ExecutableSerialisation, extra_env: T.Optional[dict] = None) ->
['Z:' + p for p in exe.extra_paths] + child_env.get('WINEPATH', '').split(';')
)
+ pipe = subprocess.PIPE
+ if exe.verbose:
+ assert not exe.capture, 'Cannot capture and print to console at the same time'
+ pipe = None
+
p = subprocess.Popen(cmd_args, env=child_env, cwd=exe.workdir,
- close_fds=False,
- stdout=subprocess.PIPE,
- stderr=subprocess.PIPE)
+ close_fds=False, stdout=pipe, stderr=pipe)
stdout, stderr = p.communicate()
if p.returncode == 0xc0000135:
@@ -65,6 +68,8 @@ def run_exe(exe: ExecutableSerialisation, extra_env: T.Optional[dict] = None) ->
if p.returncode != 0:
if exe.pickled:
print('while executing {!r}'.format(cmd_args))
+ if exe.verbose:
+ return p.returncode
if not exe.capture:
print('--- stdout ---')
print(stdout.decode())