16
16
"""
17
17
from exporters import Exporter
18
18
import re
19
-
19
+ import os
20
+ from os .path import join , dirname
20
21
class IAREmbeddedWorkbench (Exporter ):
21
22
NAME = 'IAR'
22
23
TOOLCHAIN = 'IAR'
@@ -115,7 +116,7 @@ def __str__(self):
115
116
#Add files in current folder
116
117
if self .source_files :
117
118
for src in self .source_files :
118
- str_content += "<file>\n <name>$PROJ_DIR$\\ %s</name>\n </file>\n " % src
119
+ str_content += "<file>\n <name>$PROJ_DIR$/ %s</name>\n </file>\n " % src
119
120
##Add sub folders
120
121
if self .sub_folders :
121
122
for folder_name in self .sub_folders .iterkeys ():
@@ -126,12 +127,13 @@ def __str__(self):
126
127
127
128
128
129
def insert_file (self , source_input ):
129
- if self .source_files :
130
+
131
+ if self .source_files :
130
132
dir_sources = IAR_FOLDER .get_directory (self .source_files [0 ]) ##All source_files in a IAR_FOLDER must be in same directory.
131
133
if not self .folder_level == dir_sources : ## Check if sources are already at their deepest level.
132
134
_reg_exp = r"^" + re .escape (self .folder_level ) + r"[/\\]?([^/\\]+)"
133
- folder_name = re .match ( _reg_exp , dir_sources ).group (1 )
134
- self .sub_folders [folder_name ] = IAR_FOLDER (self .folder_level + " \\ " + folder_name , folder_name , self .source_files )
135
+ folder_name = re .match ( _reg_exp , dir_sources ).group (1 )
136
+ self .sub_folders [folder_name ] = IAR_FOLDER (os . path . join ( self .folder_level , folder_name ) , folder_name , self .source_files )
135
137
self .source_files = []
136
138
137
139
dir_input = IAR_FOLDER .get_directory (source_input )
@@ -146,14 +148,10 @@ def insert_file(self, source_input):
146
148
if self .folder_level == "" : #Top level exception
147
149
self .sub_folders [folder_name ] = IAR_FOLDER (folder_name , folder_name , [source_input ])
148
150
else :
149
- self .sub_folders [folder_name ] = IAR_FOLDER (self .folder_level + " \\ " + folder_name , folder_name , [source_input ])
151
+ self .sub_folders [folder_name ] = IAR_FOLDER (os . path . join ( self .folder_level , folder_name ) , folder_name , [source_input ])
150
152
151
153
@staticmethod
152
154
def get_directory (file_path ):
153
- dir_Match = re .match ( r'(.*)[/\\][^/\\]+' , file_path )
154
- if dir_Match is not None :
155
- return dir_Match .group (1 )
156
- else :
157
- return ""
155
+ return os .path .dirname (file_path )
156
+
158
157
159
-
0 commit comments