[Tools] scons add iar LIBS and LIBPATH support
@@ -86,6 +86,7 @@ def IARProject(target, script):
CPPDEFINES = []
LINKFLAGS = ''
CCFLAGS = ''
+ Libs = []
# add group
for group in script:
@@ -103,6 +104,19 @@ def IARProject(target, script):
if group.has_key('LINKFLAGS') and group['LINKFLAGS']:
LINKFLAGS += group['LINKFLAGS']
+ if group.has_key('LIBS') and group['LIBS']:
+ for item in group['LIBS']:
+ lib_path = ''
+
+ for path_item in group['LIBPATH']:
+ full_path = os.path.join(path_item, item + '.a')
+ if os.path.isfile(full_path): # has this library
+ lib_path = full_path
+
+ if lib_path != '':
+ lib_path = _make_path_relative(project_path, lib_path)
+ Libs += [lib_path]
+
# make relative path
paths = set()
for path in CPPPATH:
@@ -128,6 +142,15 @@ def IARProject(target, script):
state = SubElement(option, 'state')
state.text = define
+ if name.text == 'IlinkAdditionalLibs':
+ for path in Libs:
+ state = SubElement(option, 'state')
+ if os.path.isabs(path) or path.startswith('$'):
+ path = path.decode(fs_encoding)
+ else:
+ path = ('$PROJ_DIR$\\' + path).decode(fs_encoding)
+ state.text = path
+
xml_indent(root)
out.write(etree.tostring(root, encoding='utf-8'))
out.close()
