Skip to content

Commit 40ccdd5

Browse files
author
Power User
committed
ISSUE #996 Fixed linux paths for IAR exporter
1 parent ea01d61 commit 40ccdd5

File tree

1 file changed

+10
-12
lines changed

1 file changed

+10
-12
lines changed

workspace_tools/export/iar.py

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,8 @@
1616
"""
1717
from exporters import Exporter
1818
import re
19-
19+
import os
20+
from os.path import join, dirname
2021
class IAREmbeddedWorkbench(Exporter):
2122
NAME = 'IAR'
2223
TOOLCHAIN = 'IAR'
@@ -115,7 +116,7 @@ def __str__(self):
115116
#Add files in current folder
116117
if self.source_files:
117118
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
119120
##Add sub folders
120121
if self.sub_folders:
121122
for folder_name in self.sub_folders.iterkeys():
@@ -126,12 +127,13 @@ def __str__(self):
126127

127128

128129
def insert_file(self, source_input):
129-
if self.source_files:
130+
131+
if self.source_files:
130132
dir_sources = IAR_FOLDER.get_directory(self.source_files[0]) ##All source_files in a IAR_FOLDER must be in same directory.
131133
if not self.folder_level == dir_sources: ## Check if sources are already at their deepest level.
132134
_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)
135137
self.source_files = []
136138

137139
dir_input = IAR_FOLDER.get_directory(source_input)
@@ -146,14 +148,10 @@ def insert_file(self, source_input):
146148
if self.folder_level == "": #Top level exception
147149
self.sub_folders[folder_name] = IAR_FOLDER(folder_name, folder_name, [source_input])
148150
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])
150152

151153
@staticmethod
152154
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+
158157

159-

0 commit comments

Comments
 (0)