Add IAR project connections.
This commit is contained in:
51
tools/iar_gen.py
Normal file
51
tools/iar_gen.py
Normal file
@@ -0,0 +1,51 @@
|
||||
#!/usr/bin/python3
|
||||
|
||||
import os
|
||||
import xml.dom.minidom as XML
|
||||
|
||||
# Read base configuration
|
||||
base = ""
|
||||
with open("iar.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)
|
Reference in New Issue
Block a user