mirror of https://github.com/ARMmbed/mbed-os.git
gnuarmeclipse: fix windows paths
parent
f82fa9310e
commit
dc6f9342ae
|
@ -283,16 +283,36 @@ class GNUARMEclipse(Exporter):
|
||||||
# print 'source folders'
|
# print 'source folders'
|
||||||
# print source_folders
|
# print source_folders
|
||||||
|
|
||||||
top_folders = [f for f in set(s.split(os.sep)[0]
|
# Source folders were converted before and are guaranteed to
|
||||||
|
# use the POSIX separator.
|
||||||
|
top_folders = [f for f in set(s.split('/')[0]
|
||||||
for s in source_folders)]
|
for s in source_folders)]
|
||||||
# print 'top folders'
|
# print 'top folders'
|
||||||
# print top_folders
|
# print top_folders
|
||||||
|
|
||||||
self.source_tree = {}
|
self.source_tree = {}
|
||||||
for top_folder in top_folders:
|
for top_folder in top_folders:
|
||||||
for root, dirs, files in os.walk(top_folder):
|
for root, dirs, files in os.walk(top_folder, topdown=True):
|
||||||
|
# print root, dirs, files
|
||||||
|
|
||||||
|
# Paths returned by os.walk() must be split with os.dep
|
||||||
|
# to accomodate Windows weirdness.
|
||||||
|
parts = root.split(os.sep)
|
||||||
|
|
||||||
|
# Ignore paths that include parts starting with dot.
|
||||||
|
skip = False
|
||||||
|
for part in parts:
|
||||||
|
if part.startswith('.'):
|
||||||
|
skip = True
|
||||||
|
break
|
||||||
|
if skip:
|
||||||
|
continue
|
||||||
|
|
||||||
|
# Further process only leaf paths, (that do not have
|
||||||
|
# sub-folders).
|
||||||
if len(dirs) == 0:
|
if len(dirs) == 0:
|
||||||
self.add_source_folder_to_tree(root)
|
# The path is reconstructed using POSIX separators.
|
||||||
|
self.add_source_folder_to_tree('/'.join(parts))
|
||||||
|
|
||||||
for folder in source_folders:
|
for folder in source_folders:
|
||||||
self.add_source_folder_to_tree(folder, True)
|
self.add_source_folder_to_tree(folder, True)
|
||||||
|
@ -300,6 +320,7 @@ class GNUARMEclipse(Exporter):
|
||||||
# print
|
# print
|
||||||
# print self.source_tree
|
# print self.source_tree
|
||||||
# self.dump_paths(self.source_tree)
|
# self.dump_paths(self.source_tree)
|
||||||
|
# self.dump_tree(self.source_tree)
|
||||||
|
|
||||||
# print 'excludings'
|
# print 'excludings'
|
||||||
self.excluded_folders = ['BUILD']
|
self.excluded_folders = ['BUILD']
|
||||||
|
@ -314,12 +335,14 @@ class GNUARMEclipse(Exporter):
|
||||||
as used.
|
as used.
|
||||||
"""
|
"""
|
||||||
# print path, is_used
|
# print path, is_used
|
||||||
parts = path.split(os.sep)
|
|
||||||
|
# All paths arriving here are guaranteed to use the POSIX
|
||||||
|
# separators, os.walk() paths were also explicitly converted.
|
||||||
|
parts = path.split('/')
|
||||||
|
# print parts
|
||||||
node = self.source_tree
|
node = self.source_tree
|
||||||
prev = None
|
prev = None
|
||||||
for part in parts:
|
for part in parts:
|
||||||
if part[0] == '.':
|
|
||||||
continue
|
|
||||||
if part not in node.keys():
|
if part not in node.keys():
|
||||||
new_node = {}
|
new_node = {}
|
||||||
new_node['name'] = part
|
new_node['name'] = part
|
||||||
|
@ -346,6 +369,8 @@ class GNUARMEclipse(Exporter):
|
||||||
if 'parent' not in cnode:
|
if 'parent' not in cnode:
|
||||||
break
|
break
|
||||||
cnode = cnode['parent']
|
cnode = cnode['parent']
|
||||||
|
|
||||||
|
# Compose a POSIX path.
|
||||||
path = '/'.join(parts)
|
path = '/'.join(parts)
|
||||||
# print path
|
# print path
|
||||||
self.excluded_folders.append(path)
|
self.excluded_folders.append(path)
|
||||||
|
@ -388,7 +413,7 @@ class GNUARMEclipse(Exporter):
|
||||||
node = node['parent']
|
node = node['parent']
|
||||||
path = '/'.join(parts)
|
path = '/'.join(parts)
|
||||||
print path, nodes[k]['is_used']
|
print path, nodes[k]['is_used']
|
||||||
self.dump_paths(n['children'], depth + 1)
|
self.dump_paths(nodes[k]['children'], depth + 1)
|
||||||
|
|
||||||
# -------------------------------------------------------------------------
|
# -------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue