| get_property(ENV_VARS GLOBAL PROPERTY FLASH_SCRIPT_ENV_VARS) |
| |
| set(ENV_VARS_FORMATTED "") |
| foreach(env_var ${ENV_VARS}) |
| list(APPEND ENV_VARS_FORMATTED |
| ${env_var}=${${env_var}} |
| ) |
| endforeach() |
| |
| list(APPEND ENV_VARS_FORMATTED |
| O=${PROJECT_BINARY_DIR} |
| KERNEL_ELF_NAME=${KERNEL_ELF_NAME} |
| KERNEL_HEX_NAME=${KERNEL_HEX_NAME} |
| KERNEL_BIN_NAME=${KERNEL_BIN_NAME} |
| BOARD_DIR=${BOARD_DIR} |
| GDB=${CMAKE_GDB} |
| OPENOCD_DEFAULT_PATH=${OPENOCD_DEFAULT_PATH} |
| OPENOCD=${OPENOCD} |
| ) |
| |
| foreach(target flash debug debugserver) |
| if(target STREQUAL flash) |
| set(comment "Flashing ${BOARD}") |
| set(script ${FLASH_SCRIPT}) |
| elseif(target STREQUAL debug) |
| set(comment "Debugging ${BOARD}") |
| set(script ${DEBUG_SCRIPT}) |
| elseif(target STREQUAL debugserver) |
| set(comment "Debugging ${BOARD}") |
| set(script ${DEBUG_SCRIPT}) |
| if(EMU_PLATFORM) |
| # cmake/qemu/CMakeLists.txt will add a debugserver target for |
| # emulation platforms, so we don't add one here |
| continue() |
| endif() |
| endif() |
| |
| if(script) |
| set(cmd |
| ${CMAKE_COMMAND} -E env |
| ${ENV_VARS_FORMATTED} |
| ${PYTHON_EXECUTABLE} |
| $ENV{ZEPHYR_BASE}/scripts/support/zephyr_flash_debug.py |
| ${target} |
| ${script} |
| DEPENDS ${logical_target_for_zephyr_elf} |
| WORKING_DIRECTORY ${APPLICATION_BINARY_DIR} |
| ) |
| else() |
| set(cmd |
| ${CMAKE_COMMAND} -E echo |
| "'${target}' is not supported with this board." |
| "Please check the documentation for alternate instructions." |
| ) |
| endif() |
| |
| add_custom_target(${target} |
| COMMAND |
| ${cmd} |
| COMMENT |
| ${comment} |
| ) |
| endforeach() |