summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBernard Xiong <[email protected]>2019-08-18 15:52:53 +0800
committerGitHub <[email protected]>2019-08-18 15:52:53 +0800
commit70d6d3674a4a912f7b5f0e21cb1effbcb7d54bfa (patch)
tree1a6f36a43f2cbf684477427e9b724bbe72c0a1ed
parent39b21b354c17b78afcfdca13a631843c43ddde2c (diff)
parente6a07139ce595d7045fc54748544708e5921f2b7 (diff)
Merge pull request #2952 from armink/fix_eclipse
Fix eclipse
-rw-r--r--tools/eclipse.py20
1 files changed, 20 insertions, 0 deletions
diff --git a/tools/eclipse.py b/tools/eclipse.py
index e4c37892e9..d781a701cb 100644
--- a/tools/eclipse.py
+++ b/tools/eclipse.py
@@ -181,6 +181,7 @@ def HandleToolOption(tools, env, project, reset):
if tool.get('id').find('c.linker') != -1:
options = tool.findall('option')
for option in options:
+ # update linker script config
if option.get('id').find('c.linker.scriptfile') != -1:
linker_script = 'link.lds'
items = env['LINKFLAGS'].split(' ')
@@ -201,12 +202,31 @@ def HandleToolOption(tools, env, project, reset):
linker_script = ConverToEclipsePathFormat(items[items.index('-T') + 1]).strip('"')
option.set('value',linker_script)
+ # update nostartfiles config
if option.get('id').find('c.linker.nostart') != -1:
if env['LINKFLAGS'].find('-nostartfiles') != -1:
option.set('value', 'true')
else:
option.set('value', 'false')
+ # update libs
+ if option.get('id').find('c.linker.libs') != -1 and env.has_key('LIBS'):
+ # remove old libs
+ for item in option.findall('listOptionValue'):
+ option.remove(item)
+ # add new libs
+ for lib in env['LIBS']:
+ SubElement(option, 'listOptionValue', {'builtIn': 'false', 'value': lib})
+
+ # update lib paths
+ if option.get('id').find('c.linker.paths') != -1 and env.has_key('LIBPATH'):
+ # remove old lib paths
+ for item in option.findall('listOptionValue'):
+ option.remove(item)
+ # add new old lib paths
+ for path in env['LIBPATH']:
+ SubElement(option, 'listOptionValue', {'builtIn': 'false', 'value': path})
+
return