52 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			52 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| #!/usr/bin/python3
 | |
| 
 | |
| import os
 | |
| import xml.dom.minidom as XML
 | |
| 
 | |
| # Read base configuration
 | |
| base = ""
 | |
| with open("iar_template.ipcf") as f:
 | |
|     base = f.read()
 | |
| 
 | |
| # Enumerate all device/host examples
 | |
| dir_1 = os.listdir("../examples")
 | |
| for dir_2 in dir_1:
 | |
|     if os.path.isdir("../examples/{}".format(dir_2)):
 | |
|         print(dir_2)
 | |
|         examples = os.listdir("../examples/{}".format(dir_2))
 | |
|         for example in examples:
 | |
|             if os.path.isdir("../examples/{}/{}".format(dir_2, example)):
 | |
|                 print("../examples/{}/{}".format(dir_2, example))
 | |
|                 conf = XML.parseString(base)
 | |
|                 files = conf.getElementsByTagName("files")[0]
 | |
|                 inc   = conf.getElementsByTagName("includePath")[0]
 | |
|                 # Add bsp inc
 | |
|                 path = conf.createElement('path')
 | |
|                 path_txt = conf.createTextNode("$TUSB_DIR$/hw")
 | |
|                 path.appendChild(path_txt)
 | |
|                 inc.appendChild(path)
 | |
|                 # Add board.c/.h
 | |
|                 grp = conf.createElement('group')
 | |
|                 grp.setAttribute("name", "bsp")
 | |
|                 path = conf.createElement('path')
 | |
|                 path_txt = conf.createTextNode("$TUSB_DIR$/hw/bsp/board.c")
 | |
|                 path.appendChild(path_txt)
 | |
|                 grp.appendChild(path)
 | |
|                 files.appendChild(grp)
 | |
|                 # Add example's .c/.h
 | |
|                 grp = conf.createElement('group')
 | |
|                 grp.setAttribute("name", "example")
 | |
|                 for file in os.listdir("../examples/{}/{}/src".format(dir_2, example)):
 | |
|                     if file.endswith(".c") or file.endswith(".h"):
 | |
|                         path = conf.createElement('path')
 | |
|                         path.setAttribute("copyTo", "$PROJ_DIR$/{}".format(file))
 | |
|                         path_txt = conf.createTextNode("$TUSB_DIR$/examples/{0}/{1}/src/{2}".format(dir_2, example, file))
 | |
|                         path.appendChild(path_txt)
 | |
|                         grp.appendChild(path)
 | |
|                 files.appendChild(grp)
 | |
|                 cfg_str = conf.toprettyxml()
 | |
|                 cfg_str = '\n'.join([s for s in cfg_str.splitlines() if s.strip()])
 | |
|                 #print(cfg_str)
 | |
|                 with open("../examples/{0}/{1}/iar_{1}.ipcf".format(dir_2, example), 'w') as f:
 | |
|                     f.write(cfg_str)
 |