@@ -144,21 +144,34 @@ target_link_libraries(mbed-core INTERFACE ${MBED_TARGET_CONVERTED})
144144#
145145function (mbed_generate_bin_hex target )
146146 get_property (elf_to_bin GLOBAL PROPERTY ELF2BIN)
147- if (MBED_TOOLCHAIN STREQUAL "GCC_ARM" )
148- set (CMAKE_POST_BUILD_COMMAND
149- COMMAND ${elf_to_bin} -O binary $<TARGET_FILE:${target} > ${CMAKE_CURRENT_BINARY_DIR} /${target} .bin
150- COMMAND ${CMAKE_COMMAND} -E echo "-- built: ${CMAKE_CURRENT_BINARY_DIR} /${target} .bin"
151- COMMAND ${elf_to_bin} -O ihex $<TARGET_FILE:${target} > ${CMAKE_CURRENT_BINARY_DIR} /${target} .hex
152- COMMAND ${CMAKE_COMMAND} -E echo "-- built: ${CMAKE_CURRENT_BINARY_DIR} /${target} .hex"
153- )
147+ if (MBED_TOOLCHAIN STREQUAL "GCC_ARM" )
148+ # The first condition is quoted in case MBED_OUTPUT_EXT is unset
149+ if ("${MBED_OUTPUT_EXT} " STREQUAL "" OR MBED_OUTPUT_EXT STREQUAL "bin" )
150+ list (APPEND CMAKE_POST_BUILD_COMMAND
151+ COMMAND ${elf_to_bin} -O binary $<TARGET_FILE:${target} > ${CMAKE_CURRENT_BINARY_DIR} /${target} .bin
152+ COMMAND ${CMAKE_COMMAND} -E echo "-- built: ${CMAKE_CURRENT_BINARY_DIR} /${target} .bin"
153+ )
154+ endif ()
155+ if ("${MBED_OUTPUT_EXT} " STREQUAL "" OR MBED_OUTPUT_EXT STREQUAL "hex" )
156+ list (APPEND CMAKE_POST_BUILD_COMMAND
157+ COMMAND ${elf_to_bin} -O ihex $<TARGET_FILE:${target} > ${CMAKE_CURRENT_BINARY_DIR} /${target} .hex
158+ COMMAND ${CMAKE_COMMAND} -E echo "-- built: ${CMAKE_CURRENT_BINARY_DIR} /${target} .hex"
159+ )
160+ endif ()
154161 elseif (MBED_TOOLCHAIN STREQUAL "ARM" )
155162 get_property (mbed_studio_arm_compiler GLOBAL PROPERTY MBED_STUDIO_ARM_COMPILER)
156- set (CMAKE_POST_BUILD_COMMAND
157- COMMAND ${elf_to_bin} ${mbed_studio_arm_compiler} --bin -o ${CMAKE_CURRENT_BINARY_DIR} /${target} .bin $<TARGET_FILE:${target} >
158- COMMAND ${CMAKE_COMMAND} -E echo "-- built: ${CMAKE_CURRENT_BINARY_DIR} /${target} .bin"
163+ if ("${MBED_OUTPUT_EXT} " STREQUAL "" OR MBED_OUTPUT_EXT STREQUAL "bin" )
164+ list (APPEND CMAKE_POST_BUILD_COMMAND
165+ COMMAND ${elf_to_bin} ${mbed_studio_arm_compiler} --bin -o ${CMAKE_CURRENT_BINARY_DIR} /${target} .bin $<TARGET_FILE:${target} >
166+ COMMAND ${CMAKE_COMMAND} -E echo "-- built: ${CMAKE_CURRENT_BINARY_DIR} /${target} .bin"
167+ )
168+ endif ()
169+ if ("${MBED_OUTPUT_EXT} " STREQUAL "" OR MBED_OUTPUT_EXT STREQUAL "hex" )
170+ list (APPEND CMAKE_POST_BUILD_COMMAND
159171 COMMAND ${elf_to_bin} ${mbed_studio_arm_compiler} --i32combined -o ${CMAKE_CURRENT_BINARY_DIR} /${target} .hex $<TARGET_FILE:${target} >
160172 COMMAND ${CMAKE_COMMAND} -E echo "-- built: ${CMAKE_CURRENT_BINARY_DIR} /${target} .hex"
161- )
173+ )
174+ endif ()
162175 endif ()
163176 add_custom_command (
164177 TARGET
0 commit comments