Skip to content

Commit 254ac8e

Browse files
committed
squash 464c35f fixed cmp0175 by changing target type to output
fixed cmp0175 by changing target type to output. fixed relative paths for modm not being in the base folder fixed relative path for linker file in cmake build revert the linker script location. use <option name="modm:platform:cortex-m:linkerscript.override">link/linkerscript.ld</option> instead testing if this change is the problematic remove trailing whitespace revert the linker script location. use <option name="modm:platform:cortex-m:linkerscript.override">link/linkerscript.ld</option> instead testing if this change is the problematic remove trailing whitespace
1 parent 932f6f2 commit 254ac8e

File tree

1 file changed

+81
-73
lines changed

1 file changed

+81
-73
lines changed

tools/build_script_generator/cmake/resources/ModmConfiguration.cmake.in

Lines changed: 81 additions & 73 deletions
Original file line numberDiff line numberDiff line change
@@ -175,132 +175,140 @@ function(modm_targets_create project_name)
175175
%% if core.startswith("cortex-m")
176176
add_custom_command(TARGET ${project_name}
177177
POST_BUILD
178-
COMMAND cmake -E env PYTHONPATH=${PROJECT_SOURCE_DIR}/modm ${Python3_EXECUTABLE} -m modm_tools.size ${project_name}.elf \"{{ memories }}\")
178+
COMMAND cmake -E env PYTHONPATH=${CMAKE_CURRENT_SOURCE_DIR}/modm ${Python3_EXECUTABLE} -m modm_tools.size ${project_name}.elf \"{{ memories }}\")
179179
%% endif
180180

181-
add_custom_target(size DEPENDS ${project_name}.elf)
182-
add_custom_command(TARGET size
181+
add_custom_target(TARGET size ALL DEPENDS size.stamp)
182+
add_custom_command(OUTPUT size.stamp
183183
USES_TERMINAL
184-
COMMAND cmake -E env PYTHONPATH=modm ${Python3_EXECUTABLE} -m modm_tools.size ${PROJECT_BINARY_DIR}/${project_name}.elf \"{{ memories }}\"
185-
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR})
184+
COMMAND cmake -E env PYTHONPATH=${CMAKE_CURRENT_SOURCE_DIR}/modm ${Python3_EXECUTABLE} -m modm_tools.size ${PROJECT_BINARY_DIR}/${project_name}.elf \"{{ memories }}\"
185+
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
186186

187-
add_custom_target(program DEPENDS ${project_name}.elf)
188-
add_custom_command(TARGET program
187+
188+
add_custom_target(program DEPENDS program.done)
189+
add_custom_command(OUTPUT program.done
189190
USES_TERMINAL
190-
COMMAND cmake -E env PYTHONPATH=modm ${Python3_EXECUTABLE} -m modm_tools.openocd -f modm/openocd.cfg
191+
COMMAND cmake -E env PYTHONPATH=${CMAKE_CURRENT_SOURCE_DIR}/modm ${Python3_EXECUTABLE} -m modm_tools.openocd -f modm/openocd.cfg
191192
${PROJECT_BINARY_DIR}/${project_name}.elf
192-
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR})
193+
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
194+
193195

194-
add_custom_target(program-bmp DEPENDS ${project_name}.elf)
195-
add_custom_command(TARGET program-bmp
196+
add_custom_target(program-bmp DEPENDS program-bmp.done)
197+
add_custom_command(OUTPUT program-bmp.done
196198
USES_TERMINAL
197-
COMMAND cmake -E env PYTHONPATH=modm ${Python3_EXECUTABLE} -m modm_tools.bmp -p ${MODM_BMP_PORT}
199+
COMMAND cmake -E env PYTHONPATH=${CMAKE_CURRENT_SOURCE_DIR}/modm ${Python3_EXECUTABLE} -m modm_tools.bmp -p ${MODM_BMP_PORT}
198200
${PROJECT_BINARY_DIR}/${project_name}.elf
199-
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR})
201+
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
202+
DEPENDS ${PROJECT_BINARY_DIR}/${project_name}.elf)
200203

201-
add_custom_target(program-jlink DEPENDS ${project_name}.elf)
202-
add_custom_command(TARGET program-jlink
204+
add_custom_target(program-jlink DEPENDS program-jlink.done)
205+
add_custom_command(OUTPUT program-jlink.done
203206
USES_TERMINAL
204-
COMMAND cmake -E env PYTHONPATH=modm ${Python3_EXECUTABLE} -m modm_tools.jlink -device {{ jlink_partname }}
207+
COMMAND cmake -E env PYTHONPATH=${CMAKE_CURRENT_SOURCE_DIR}/modm ${Python3_EXECUTABLE} -m modm_tools.jlink -device {{ jlink_partname }}
205208
${PROJECT_BINARY_DIR}/${project_name}.elf
206-
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR})
209+
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
210+
DEPENDS ${PROJECT_BINARY_DIR}/${project_name}.elf)
207211

208-
add_custom_target(debug DEPENDS ${project_name}.elf)
209-
add_custom_command(TARGET debug
212+
add_custom_target(debug DEPENDS debug.done)
213+
add_custom_command(OUTPUT debug.done
210214
USES_TERMINAL
211-
COMMAND cmake -E env PYTHONPATH=modm ${Python3_EXECUTABLE} -m modm_tools.gdb -x modm/gdbinit -x modm/openocd_gdbinit
215+
COMMAND cmake -E env PYTHONPATH=${CMAKE_CURRENT_SOURCE_DIR}/modm ${Python3_EXECUTABLE} -m modm_tools.gdb -x modm/gdbinit -x modm/openocd_gdbinit
212216
--elf ${PROJECT_BINARY_DIR}/${project_name}.elf --ui=${MODM_DBG_UI}
213217
openocd -f modm/openocd.cfg
214-
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR})
218+
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
219+
DEPENDS ${PROJECT_BINARY_DIR}/${project_name}.elf)
215220

216-
add_custom_target(debug-bmp DEPENDS ${project_name}.elf)
217-
add_custom_command(TARGET debug-bmp
221+
add_custom_target(debug-bmp DEPENDS debug-bmp.done)
222+
add_custom_command(OUTPUT debug-bmp.done
218223
USES_TERMINAL
219-
COMMAND cmake -E env PYTHONPATH=modm ${Python3_EXECUTABLE} -m modm_tools.gdb -x modm/gdbinit -x modm/openocd_bmp
224+
COMMAND cmake -E env PYTHONPATH=${CMAKE_CURRENT_SOURCE_DIR}/modm ${Python3_EXECUTABLE} -m modm_tools.gdb -x modm/gdbinit -x modm/openocd_bmp
220225
--elf ${PROJECT_BINARY_DIR}/${project_name}.elf --ui=${MODM_DBG_UI}
221226
bmp -p ${MODM_BMP_PORT}
222-
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR})
227+
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
228+
DEPENDS ${PROJECT_BINARY_DIR}/${project_name}.elf)
223229

224-
add_custom_target(debug-jlink DEPENDS ${project_name}.elf)
225-
add_custom_command(TARGET debug-jlink
230+
add_custom_target(debug-jlink DEPENDS debug-jlink.done)
231+
add_custom_command(OUTPUT debug-jlink.done
226232
USES_TERMINAL
227-
COMMAND cmake -E env PYTHONPATH=modm ${Python3_EXECUTABLE} -m modm_tools.gdb -x modm/gdbinit -x modm/openocd_jlink
233+
COMMAND cmake -E env PYTHONPATH=${CMAKE_CURRENT_SOURCE_DIR}/modm ${Python3_EXECUTABLE} -m modm_tools.gdb -x modm/gdbinit -x modm/openocd_jlink
228234
--elf ${PROJECT_BINARY_DIR}/${project_name}.elf --ui=${MODM_DBG_UI}
229235
jlink -device {{ jlink_partname }}
230-
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR})
236+
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
237+
DEPENDS ${PROJECT_BINARY_DIR}/${project_name}.elf)
231238

232-
add_custom_target(debug-coredump DEPENDS ${project_name}.elf)
233-
add_custom_command(TARGET debug-coredump
239+
add_custom_target(debug-coredump DEPENDS debug-coredump.done)
240+
add_custom_command(OUTPUT debug-coredump
234241
USES_TERMINAL
235-
COMMAND cmake -E env PYTHONPATH=modm ${Python3_EXECUTABLE} -m modm_tools.gdb -x modm/gdbinit
242+
COMMAND cmake -E env PYTHONPATH=${CMAKE_CURRENT_SOURCE_DIR}/modm ${Python3_EXECUTABLE} -m modm_tools.gdb -x modm/gdbinit
236243
--elf ${PROJECT_BINARY_DIR}/${project_name}.elf --ui=${MODM_DBG_UI}
237244
crashdebug
238-
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR})
245+
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
246+
DEPENDS ${PROJECT_BINARY_DIR}/${project_name}.elf)
239247

240-
add_custom_target(coredump)
241-
add_custom_command(TARGET coredump
248+
add_custom_target(coredump DEPENDS coredump.done)
249+
add_custom_command(OUTPUT coredump.done
242250
USES_TERMINAL
243-
COMMAND cmake -E env PYTHONPATH=modm ${Python3_EXECUTABLE} -m modm_tools.gdb -x modm/gdbinit
251+
COMMAND cmake -E env PYTHONPATH=${CMAKE_CURRENT_SOURCE_DIR}/modm ${Python3_EXECUTABLE} -m modm_tools.gdb -x modm/gdbinit
244252
-ex "modm_coredump" -ex "modm_build_id" -ex "quit"
245253
openocd -f modm/openocd.cfg
246-
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR})
254+
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
247255

248-
add_custom_target(coredump-bmp)
249-
add_custom_command(TARGET coredump-bmp
256+
add_custom_target(coredump-bmp DEPENDS coredump-bmp.done)
257+
add_custom_command(OUTPUT coredump-bmp.done
250258
USES_TERMINAL
251-
COMMAND cmake -E env PYTHONPATH=modm ${Python3_EXECUTABLE} -m modm_tools.gdb -x modm/gdbinit
259+
COMMAND cmake -E env PYTHONPATH=${CMAKE_CURRENT_SOURCE_DIR}/modm ${Python3_EXECUTABLE} -m modm_tools.gdb -x modm/gdbinit
252260
-ex "modm_coredump" -ex "modm_build_id" -ex "quit"
253261
bmp -p ${MODM_BMP_PORT}
254-
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR})
262+
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
255263

256-
add_custom_target(coredump-jlink)
257-
add_custom_command(TARGET coredump-jlink
264+
add_custom_target(coredump-jlink DEPENDS coredump-jlink.done)
265+
add_custom_command(OUTPUT coredump-jlink.done
258266
USES_TERMINAL
259-
COMMAND cmake -E env PYTHONPATH=modm ${Python3_EXECUTABLE} -m modm_tools.gdb -x modm/gdbinit
267+
COMMAND cmake -E env PYTHONPATH=${CMAKE_CURRENT_SOURCE_DIR}/modm ${Python3_EXECUTABLE} -m modm_tools.gdb -x modm/gdbinit
260268
-ex "modm_coredump" -ex "modm_build_id" -ex "quit"
261269
jlink -device {{ jlink_partname }}
262-
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR})
270+
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
263271

264-
add_custom_target(reset)
265-
add_custom_command(TARGET reset
272+
add_custom_target(reset DEPENDS reset.done)
273+
add_custom_command(OUTPUT reset.done
266274
USES_TERMINAL
267-
COMMAND cmake -E env PYTHONPATH=modm ${Python3_EXECUTABLE} -m modm_tools.openocd -f modm/openocd.cfg --reset
268-
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR})
275+
COMMAND cmake -E env PYTHONPATH=${CMAKE_CURRENT_SOURCE_DIR}/modm ${Python3_EXECUTABLE} -m modm_tools.openocd -f modm/openocd.cfg --reset
276+
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
269277

270-
add_custom_target(reset-bmp)
271-
add_custom_command(TARGET reset-bmp
278+
add_custom_target(reset-bmp DEPENDS reset-bmp.done)
279+
add_custom_command(OUTPUT reset-bmp.done
272280
USES_TERMINAL
273-
COMMAND cmake -E env PYTHONPATH=modm ${Python3_EXECUTABLE} -m modm_tools.bmp -p ${MODM_BMP_PORT} --reset
274-
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR})
281+
COMMAND cmake -E env PYTHONPATH=${CMAKE_CURRENT_SOURCE_DIR}/modm ${Python3_EXECUTABLE} -m modm_tools.bmp -p ${MODM_BMP_PORT} --reset
282+
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
275283

276-
add_custom_target(reset-jlink)
277-
add_custom_command(TARGET reset-jlink
284+
add_custom_target(reset-jlink DEPENDS reset-jlink.done)
285+
add_custom_command(OUTPUT reset-jlink.done
278286
USES_TERMINAL
279-
COMMAND cmake -E env PYTHONPATH=modm ${Python3_EXECUTABLE} -m modm_tools.jlink -device {{ jlink_partname }} --reset
280-
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR})
287+
COMMAND cmake -E env PYTHONPATH=${CMAKE_CURRENT_SOURCE_DIR}/modm ${Python3_EXECUTABLE} -m modm_tools.jlink -device {{ jlink_partname }} --reset
288+
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
281289

282-
add_custom_target(log-itm)
283-
add_custom_command(TARGET log-itm
290+
add_custom_target(log-itm DEPENDS log-itm.done)
291+
add_custom_command(OUTPUT log-itm.done
284292
USES_TERMINAL
285-
COMMAND cmake -E env PYTHONPATH=modm ${Python3_EXECUTABLE} -m modm_tools.itm openocd -f modm/openocd.cfg --fcpu ${MODM_ITM_FCPU}
286-
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR})
293+
COMMAND cmake -E env PYTHONPATH=${CMAKE_CURRENT_SOURCE_DIR}/modm ${Python3_EXECUTABLE} -m modm_tools.itm openocd -f modm/openocd.cfg --fcpu ${MODM_ITM_FCPU}
294+
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
287295

288-
add_custom_target(log-itm-jlink)
289-
add_custom_command(TARGET log-itm-jlink
296+
add_custom_target(log-itm-jlink DEPENDS log-itm-jlink.done)
297+
add_custom_command(OUTPUT log-itm-jlink.done
290298
USES_TERMINAL
291-
COMMAND cmake -E env PYTHONPATH=modm ${Python3_EXECUTABLE} -m modm_tools.itm jlink -device {{ jlink_partname }}
292-
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR})
299+
COMMAND cmake -E env PYTHONPATH=${CMAKE_CURRENT_SOURCE_DIR}/modm ${Python3_EXECUTABLE} -m modm_tools.itm jlink -device {{ jlink_partname }}
300+
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
293301

294-
add_custom_target(log-rtt)
295-
add_custom_command(TARGET log-rtt
302+
add_custom_target(log-rtt DEPENDS log-rtt.done)
303+
add_custom_command(OUTPUT log-rtt.done
296304
USES_TERMINAL
297-
COMMAND cmake -E env PYTHONPATH=modm ${Python3_EXECUTABLE} -m modm_tools.rtt --channel ${MODM_RTT_CHANNEL} openocd -f modm/openocd.cfg
298-
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR})
305+
COMMAND cmake -E env PYTHONPATH=${CMAKE_CURRENT_SOURCE_DIR}/modm ${Python3_EXECUTABLE} -m modm_tools.rtt --channel ${MODM_RTT_CHANNEL} openocd -f modm/openocd.cfg
306+
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
299307

300-
add_custom_target(log-rtt-jlink)
301-
add_custom_command(TARGET log-rtt-jlink
308+
add_custom_target(log-rtt-jlink DEPENDS log-rtt-jlink.done)
309+
add_custom_command(OUTPUT log-rtt-jlink.done
302310
USES_TERMINAL
303-
COMMAND cmake -E env PYTHONPATH=modm ${Python3_EXECUTABLE} -m modm_tools.rtt --channel ${MODM_RTT_CHANNEL} jlink -device {{ jlink_partname }}
304-
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR})
311+
COMMAND cmake -E env PYTHONPATH=${CMAKE_CURRENT_SOURCE_DIR}/modm ${Python3_EXECUTABLE} -m modm_tools.rtt --channel ${MODM_RTT_CHANNEL} jlink -device {{ jlink_partname }}
312+
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
305313
endfunction()
306314

0 commit comments

Comments
 (0)