Skip to content

Commit 066dc77

Browse files
committed
Merge pull request #1539 from DanKupiniak/fix_sw4stm32
[sw4stm32] Fix compilation issue while exporting project using online IDE
2 parents c301abb + c9cd05f commit 066dc77

File tree

2 files changed

+46
-1
lines changed

2 files changed

+46
-1
lines changed

workspace_tools/export/sw4stm32.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,9 @@ def generate(self):
7474
'name': self.program_name,
7575
'include_paths': self.resources.inc_dirs,
7676
'linker_script': self.resources.linker_script,
77+
'library_paths': self.resources.lib_dirs,
78+
'object_files': self.resources.objects,
79+
'libraries': libraries,
7780
'symbols': self.get_symbols(),
7881
'board_name': self.BOARDS[self.target.upper()]['name'],
7982
'mcu_name': self.BOARDS[self.target.upper()]['mcuId'],

workspace_tools/export/sw4stm32_cproject_common.tmpl

Lines changed: 43 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
<tool id="fr.ac6.managedbuild.tool.gnu.cross.c.compiler.{{debug_tool_compiler_uid}}" name="MCU GCC Compiler" superClass="fr.ac6.managedbuild.tool.gnu.cross.c.compiler">
2525
<option id="fr.ac6.managedbuild.gnu.c.compiler.option.optimization.level.{{uid}}" name="Optimization Level" superClass="fr.ac6.managedbuild.gnu.c.compiler.option.optimization.level" useByScannerDiscovery="false"/>
2626
<option id="gnu.c.compiler.option.debugging.level.{{uid}}" name="Debug Level" superClass="gnu.c.compiler.option.debugging.level" useByScannerDiscovery="false" value="gnu.c.debugging.level.max" valueType="enumerated"/>
27-
<option id="gnu.c.compiler.option.include.paths.{{uid}}" name="Include paths (-I)" superClass="gnu.c.compiler.option.include.paths" useByScannerDiscovery="false" valueType="includePath">
27+
<option id="gnu.c.compiler.option.include.paths.{{uid}}" name="Include paths (-I)" superClass="gnu.c.compiler.option.include.paths" useByScannerDiscovery="false" valueType="includePath">
2828
{% for path in include_paths %}
2929
<listOptionValue builtIn="false" value="&quot;${ProjDirPath}/{{path}}&quot;"/>
3030
{% endfor %}
@@ -63,6 +63,21 @@
6363
<tool id="fr.ac6.managedbuild.tool.gnu.cross.cpp.linker.{{uid}}" name="MCU G++ Linker" superClass="fr.ac6.managedbuild.tool.gnu.cross.cpp.linker">
6464
<option id="fr.ac6.managedbuild.tool.gnu.cross.cpp.linker.script.{{uid}}" superClass="fr.ac6.managedbuild.tool.gnu.cross.cpp.linker.script" value="${workspace_loc:/${ProjName}/{{linker_script}}}" valueType="string"/>
6565
<option id="gnu.cpp.link.option.flags.{{uid}}" superClass="gnu.cpp.link.option.flags" value="--specs=nano.specs" valueType="string"/>
66+
<option id="gnu.cpp.link.option.userobjs.{{uid}}" name="Other objects" superClass="gnu.cpp.link.option.userobjs" valueType="userObjs">
67+
{% for path in object_files %}
68+
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/{{path}}}&quot;"/>
69+
{% endfor %}
70+
</option>
71+
<option id="gnu.cpp.link.option.libs.{{uid}}" name="Libraries (-l)" superClass="gnu.cpp.link.option.libs" valueType="libs">
72+
{% for lib in libraries %}
73+
<listOptionValue builtIn="false" value="{{lib}}"/>
74+
{% endfor %}
75+
</option>
76+
<option id="gnu.cpp.link.option.paths.{{uid}}" superClass="gnu.cpp.link.option.paths" valueType="libPaths">
77+
{% for path in library_paths %}
78+
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/{{path}}}&quot;"/>
79+
{% endfor %}
80+
</option>
6681
<inputType id="cdt.managedbuild.tool.gnu.cpp.linker.input.{{uid}}" superClass="cdt.managedbuild.tool.gnu.cpp.linker.input">
6782
<additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>
6883
<additionalInput kind="additionalinput" paths="$(LIBS)"/>
@@ -122,6 +137,16 @@
122137
<tool id="fr.ac6.managedbuild.tool.gnu.cross.cpp.compiler.{{uid}}" name="MCU G++ Compiler" superClass="fr.ac6.managedbuild.tool.gnu.cross.cpp.compiler">
123138
<option id="fr.ac6.managedbuild.gnu.cpp.compiler.option.optimization.level.{{uid}}" name="Optimization Level" superClass="fr.ac6.managedbuild.gnu.cpp.compiler.option.optimization.level" useByScannerDiscovery="false" value="fr.ac6.managedbuild.gnu.cpp.optimization.level.most" valueType="enumerated"/>
124139
<option id="gnu.cpp.compiler.option.debugging.level.{{uid}}" name="Debug Level" superClass="gnu.cpp.compiler.option.debugging.level" useByScannerDiscovery="false" value="gnu.cpp.compiler.debugging.level.none" valueType="enumerated"/>
140+
<option id="gnu.cpp.compiler.option.include.paths.{{uid}}" superClass="gnu.cpp.compiler.option.include.paths" valueType="includePath">
141+
{% for path in include_paths %}
142+
<listOptionValue builtIn="false" value="&quot;${ProjDirPath}/{{path}}&quot;"/>
143+
{% endfor %}
144+
</option>
145+
<option id="gnu.cpp.compiler.option.preprocessor.def{{uid}}" superClass="gnu.cpp.compiler.option.preprocessor.def" valueType="definedSymbols">
146+
{% for s in symbols %}
147+
<listOptionValue builtIn="false" value="{{s}}"/>
148+
{% endfor %}
149+
</option>
125150
<inputType id="fr.ac6.managedbuild.tool.gnu.cross.cpp.compiler.input.cpp.{{uid}}" superClass="fr.ac6.managedbuild.tool.gnu.cross.cpp.compiler.input.cpp"/>
126151
<inputType id="fr.ac6.managedbuild.tool.gnu.cross.cpp.compiler.input.s.{{uid}}" superClass="fr.ac6.managedbuild.tool.gnu.cross.cpp.compiler.input.s"/>
127152
</tool>
@@ -132,6 +157,23 @@
132157
</inputType>
133158
</tool>
134159
<tool id="fr.ac6.managedbuild.tool.gnu.cross.cpp.linker.{{uid}}" name="MCU G++ Linker" superClass="fr.ac6.managedbuild.tool.gnu.cross.cpp.linker">
160+
<option id="fr.ac6.managedbuild.tool.gnu.cross.cpp.linker.script.{{uid}}" superClass="fr.ac6.managedbuild.tool.gnu.cross.cpp.linker.script" value="${workspace_loc:/${ProjName}/{{linker_script}}}" valueType="string"/>
161+
<option id="gnu.cpp.link.option.flags.{{uid}}" superClass="gnu.cpp.link.option.flags" value="--specs=nano.specs" valueType="string"/>
162+
<option id="gnu.cpp.link.option.userobjs.{{uid}}" name="Other objects" superClass="gnu.cpp.link.option.userobjs" valueType="userObjs">
163+
{% for path in object_files %}
164+
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/{{path}}}&quot;"/>
165+
{% endfor %}
166+
</option>
167+
<option id="gnu.cpp.link.option.libs.{{uid}}" name="Libraries (-l)" superClass="gnu.cpp.link.option.libs" valueType="libs">
168+
{% for lib in libraries %}
169+
<listOptionValue builtIn="false" value="{{lib}}"/>
170+
{% endfor %}
171+
</option>
172+
<option id="gnu.cpp.link.option.paths.{{uid}}" superClass="gnu.cpp.link.option.paths" valueType="libPaths">
173+
{% for path in library_paths %}
174+
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/{{path}}}&quot;"/>
175+
{% endfor %}
176+
</option>
135177
<inputType id="cdt.managedbuild.tool.gnu.cpp.linker.input.{{uid}}" superClass="cdt.managedbuild.tool.gnu.cpp.linker.input">
136178
<additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>
137179
<additionalInput kind="additionalinput" paths="$(LIBS)"/>

0 commit comments

Comments
 (0)