forked from qt-creator/qt-creator
		
	
		
			
	
	
		
			32 lines
		
	
	
		
			944 B
		
	
	
	
		
			Python
		
	
	
	
	
	
		
		
			
		
	
	
			32 lines
		
	
	
		
			944 B
		
	
	
	
		
			Python
		
	
	
	
	
	
|   | #!/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()) |