mirror of
				https://github.com/espressif/esp-idf.git
				synced 2025-11-04 06:11:06 +00:00 
			
		
		
		
	Cygwin-style is really only /cygpath/xxx and IDF doesn't support these. Closes https://github.com/espressif/esp-idf/pull/1033
		
			
				
	
	
		
			37 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			37 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 print_function, division
 | 
						|
import sys, subprocess, os.path, re
 | 
						|
 | 
						|
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]).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()
 |