pw_build: Capture Ninja error output in pw-wrap-ninja
If Ninja is invoked with invalid arguments, it prints an error to stderr
and exits. Previously, this would lead to confusing output in
pw-wrap-ninja (0/0 targets built, but no error).
This commit fixes the issue by capturing stderr as well, and ensures
that the UI gets a chance to update at least once, even if Ninja exits
quickly.
Change-Id: I6b463a944226d061b64225fe11f67d618493fac0
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/126102
Pigweed-Auto-Submit: Eli Lipsitz <elipsitz@google.com>
Commit-Queue: Auto-Submit <auto-submit@pigweed.google.com.iam.gserviceaccount.com>
Reviewed-by: Chad Norvell <chadnorvell@google.com>
Commit-Queue: Eli Lipsitz <elipsitz@google.com>
diff --git a/pw_build/py/pw_build/wrap_ninja.py b/pw_build/py/pw_build/wrap_ninja.py
index c9f1c3e..2a710eb 100644
--- a/pw_build/py/pw_build/wrap_ninja.py
+++ b/pw_build/py/pw_build/wrap_ninja.py
@@ -224,7 +224,7 @@
env=env,
stdin=subprocess.DEVNULL,
stdout=ptty_child,
- stderr=subprocess.DEVNULL,
+ stderr=ptty_child,
)
os.close(ptty_child)
@@ -446,6 +446,7 @@
ninja = Ninja(ninja_args)
interface = UI(ninja, args)
+ interface.update()
while not ninja.exited:
interface.update()
time.sleep(args.ui_update_rate)