Skip to content

Commit fc005d5

Browse files
committed
Exporters - use relative project dirnames
For file like mbed-os\net\sal-stack-nanostack-private\source\BorderRouter\br_rf_interface.c, virtual dir is: mbed-os\net\sal-stack-nanostack-private\source\BorderRouter. This sould better organize virtual folders in IDE. The next step would be to break into groups. For instance hal could be groped together, net together and other components.
1 parent edaf2bf commit fc005d5

File tree

1 file changed

+24
-9
lines changed

1 file changed

+24
-9
lines changed

tools/export/exporters.py

Lines changed: 24 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -46,24 +46,39 @@ def __scan_and_copy(self, src_path, trg_path):
4646
self.toolchain.copy_files(r, trg_path, rel_path=src_path)
4747
return resources
4848

49+
@staticmethod
50+
def _get_dir_grouped_files(files):
51+
""" Get grouped files based on the dirname """
52+
files_grouped = {}
53+
for file in files:
54+
rel_path = os.path.relpath(file, os.getcwd())
55+
dir_path = os.path.dirname(rel_path)
56+
if dir_path == '':
57+
# all files within the current dir go into Source_Files
58+
dir_path = 'Source_Files'
59+
if not dir_path in files_grouped.keys():
60+
files_grouped[dir_path] = []
61+
files_grouped[dir_path].append(file)
62+
return files_grouped
63+
4964
def progen_get_project_data(self):
5065
""" Get ProGen project data """
5166
# provide default data, some tools don't require any additional
5267
# tool specific settings
53-
sources = []
68+
code_files = []
5469
for r_type in ['c_sources', 'cpp_sources', 's_sources']:
5570
for file in getattr(self.resources, r_type):
56-
sources.append(file)
71+
code_files.append(file)
72+
73+
sources_files = code_files + self.resources.hex_files + self.resources.objects + \
74+
self.resources.libraries
75+
sources_grouped = Exporter._get_dir_grouped_files(sources_files)
76+
headers_grouped = Exporter._get_dir_grouped_files(self.resources.headers)
5777

5878
project_data = {
5979
'common': {
60-
'sources': {
61-
'Source Files': sources + self.resources.hex_files +
62-
self.resources.objects + self.resources.libraries,
63-
},
64-
'includes': {
65-
'Include Files': self.resources.headers,
66-
},
80+
'sources': sources_grouped,
81+
'includes': headers_grouped,
6782
'build_dir':'.build',
6883
'target': [TARGET_MAP[self.target].progen['target']],
6984
'macros': self.get_symbols(),

0 commit comments

Comments
 (0)