@@ -175,132 +175,140 @@ function(modm_targets_create project_name)
175
175
%% if core.startswith ("cortex-m" )
176
176
add_custom_command (TARGET ${project_name}
177
177
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 }}\" )
179
179
%% endif
180
180
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
183
183
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 } )
186
186
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
189
190
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
191
192
${PROJECT_BINARY_DIR} /${project_name} .elf
192
- WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} )
193
+ WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} )
194
+
193
195
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
196
198
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}
198
200
${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)
200
203
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
203
206
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 }}
205
208
${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)
207
211
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
210
214
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
212
216
--elf ${PROJECT_BINARY_DIR} /${project_name} .elf --ui=${MODM_DBG_UI}
213
217
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)
215
220
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
218
223
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
220
225
--elf ${PROJECT_BINARY_DIR} /${project_name} .elf --ui=${MODM_DBG_UI}
221
226
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)
223
229
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
226
232
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
228
234
--elf ${PROJECT_BINARY_DIR} /${project_name} .elf --ui=${MODM_DBG_UI}
229
235
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)
231
238
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
234
241
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
236
243
--elf ${PROJECT_BINARY_DIR} /${project_name} .elf --ui=${MODM_DBG_UI}
237
244
crashdebug
238
- WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} )
245
+ WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
246
+ DEPENDS ${PROJECT_BINARY_DIR} /${project_name} .elf)
239
247
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
242
250
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
244
252
-ex " modm_coredump " -ex " modm_build_id " -ex " quit "
245
253
openocd -f modm/openocd.cfg
246
- WORKING_DIRECTORY ${PROJECT_SOURCE_DIR } )
254
+ WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR } )
247
255
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
250
258
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
252
260
-ex " modm_coredump " -ex " modm_build_id " -ex " quit "
253
261
bmp -p ${MODM_BMP_PORT}
254
- WORKING_DIRECTORY ${PROJECT_SOURCE_DIR } )
262
+ WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR } )
255
263
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
258
266
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
260
268
-ex " modm_coredump " -ex " modm_build_id " -ex " quit "
261
269
jlink -device {{ jlink_partname }}
262
- WORKING_DIRECTORY ${PROJECT_SOURCE_DIR } )
270
+ WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR } )
263
271
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
266
274
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 } )
269
277
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
272
280
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 } )
275
283
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
278
286
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 } )
281
289
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
284
292
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 } )
287
295
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
290
298
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 } )
293
301
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
296
304
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 } )
299
307
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
302
310
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 } )
305
313
endfunction()
306
314
0 commit comments