diff --git a/workspace_tools/export/iar.py b/workspace_tools/export/iar.py index 6c3ea0d0ca..4b65e3d88d 100644 --- a/workspace_tools/export/iar.py +++ b/workspace_tools/export/iar.py @@ -16,7 +16,8 @@ limitations under the License. """ from exporters import Exporter import re - +import os +from os.path import join, dirname class IAREmbeddedWorkbench(Exporter): NAME = 'IAR' TOOLCHAIN = 'IAR' @@ -115,7 +116,7 @@ class IAR_FOLDER: #Add files in current folder if self.source_files: for src in self.source_files: - str_content += "\n$PROJ_DIR$\\%s\n\n" % src + str_content += "\n$PROJ_DIR$/%s\n\n" % src ##Add sub folders if self.sub_folders: for folder_name in self.sub_folders.iterkeys(): @@ -126,12 +127,13 @@ class IAR_FOLDER: def insert_file(self, source_input): - if self.source_files: + + if self.source_files: dir_sources = IAR_FOLDER.get_directory(self.source_files[0]) ##All source_files in a IAR_FOLDER must be in same directory. if not self.folder_level == dir_sources: ## Check if sources are already at their deepest level. _reg_exp = r"^" + re.escape(self.folder_level) + r"[/\\]?([^/\\]+)" - folder_name = re.match( _reg_exp, dir_sources).group(1) - self.sub_folders[folder_name] = IAR_FOLDER(self.folder_level + "\\" + folder_name, folder_name, self.source_files) + folder_name = re.match( _reg_exp, dir_sources).group(1) + self.sub_folders[folder_name] = IAR_FOLDER(os.path.join(self.folder_level,folder_name), folder_name, self.source_files) self.source_files = [] dir_input = IAR_FOLDER.get_directory(source_input) @@ -146,14 +148,10 @@ class IAR_FOLDER: if self.folder_level == "": #Top level exception self.sub_folders[folder_name] = IAR_FOLDER(folder_name, folder_name, [source_input]) else: - self.sub_folders[folder_name] = IAR_FOLDER(self.folder_level + "\\" + folder_name, folder_name, [source_input]) + self.sub_folders[folder_name] = IAR_FOLDER(os.path.join(self.folder_level,folder_name), folder_name, [source_input]) @staticmethod def get_directory(file_path): - dir_Match = re.match( r'(.*)[/\\][^/\\]+', file_path) - if dir_Match is not None: - return dir_Match.group(1) - else: - return "" + return os.path.dirname(file_path) + - \ No newline at end of file