mirror of
				https://github.com/espressif/esp-idf.git
				synced 2025-10-30 20:51:41 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			45 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			45 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| #!/usr/bin/env python
 | |
| #
 | |
| # Wrapper to run make and preprocess any paths in the output from MSYS Unix-style paths
 | |
| # to Windows paths, for Eclipse
 | |
| from __future__ import division, print_function
 | |
| 
 | |
| import os.path
 | |
| import re
 | |
| import subprocess
 | |
| import sys
 | |
| 
 | |
| UNIX_PATH_RE = re.compile(r'(/[^ \'"]+)+')
 | |
| 
 | |
| paths = {}
 | |
| 
 | |
| 
 | |
| def check_path(path):
 | |
|     try:
 | |
|         return paths[path]
 | |
|     except KeyError:
 | |
|         pass
 | |
|     paths[path] = path  # cache as failed, replace with success if it works
 | |
|     try:
 | |
|         winpath = subprocess.check_output(['cygpath', '-w', path]).decode('utf-8').strip()
 | |
|     except subprocess.CalledProcessError:
 | |
|         return path  # something went wrong running cygpath, assume this is not a path!
 | |
|     if not os.path.exists(winpath):
 | |
|         return path  # not actually a valid path
 | |
|     winpath = winpath.replace('\\', '/')  # make consistent with forward-slashes used elsewhere
 | |
|     paths[path] = winpath
 | |
|     return winpath
 | |
| 
 | |
| 
 | |
| def main():
 | |
|     print("Running make in '%s'" % check_path(os.getcwd()))
 | |
|     make = subprocess.Popen(['make'] + sys.argv[1:] + ['BATCH_BUILD=1'], stdout=subprocess.PIPE)
 | |
|     for line in iter(make.stdout.readline, ''):
 | |
|         line = re.sub(UNIX_PATH_RE, lambda m: check_path(m.group(0)), line)
 | |
|         print(line.rstrip())
 | |
|     sys.exit(make.wait())
 | |
| 
 | |
| 
 | |
| if __name__ == '__main__':
 | |
|     main()
 | 
