Files
qt-creator/scripts/ninjawrapper.py
Tobias Hunger b8f1b43b4c Scripts: Add ninjawrapper.py
Add a small python program to wrap ninja and split its output nicely
into stdout and stderr.

Change-Id: Ib2fae405c170ea15910de20d5f45aaab75aa89cb
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2017-06-15 08:43:21 +00:00

32 lines
944 B
Python
Executable File

#!/usr/bin/python
'''A simple wrapper around ninja that enables Qt Creator to parse compile errors
This wrapper splits up ninja output in such a way that Qt Creator will be able
to extract compile errors from the output of this script.
Make sure that ninja is found in PATH and then override the make build step in
Qt Creator with this script to use it.
'''
import os, subprocess, sys
def main():
stdout = os.fdopen(sys.stdout.fileno(), 'wb')
stderr = os.fdopen(sys.stderr.fileno(), 'wb')
proc = subprocess.Popen(['ninja'] + sys.argv[1:], stdout=subprocess.PIPE, bufsize=256)
for line in iter(proc.stdout.readline, b''):
if (line.startswith(b'[') or line.startswith(b'ninja: no work to do')) :
stdout.write(line)
stdout.flush()
else:
stderr.write(line)
stderr.flush()
return proc.returncode
if __name__ == '__main__':
sys.exit(main())