diff --git a/CMakeLists.txt b/CMakeLists.txt index 8aca20e..195b73a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -161,6 +161,15 @@ if(CMAKE_CROSSCOMPILING) # generate linker map file target_link_options(firmware PUBLIC -Wl,-Map=firmware.map) + + # Put Prusa Magicâ„¢ at the beginning of the hex + add_custom_command( + TARGET firmware POST_BUILD + COMMAND ${CMAKE_COMMAND} -D WORK_DIR=${CMAKE_BINARY_DIR} -P + ${CMAKE_SOURCE_DIR}/cmake/HexConcat.cmake + DEPENDS firmware.hex + ) + endif() target_include_directories(firmware PRIVATE src lib) diff --git a/cmake/HexConcat.cmake b/cmake/HexConcat.cmake new file mode 100644 index 0000000..6954d92 --- /dev/null +++ b/cmake/HexConcat.cmake @@ -0,0 +1,7 @@ +cmake_minimum_required(VERSION 2.8) +set(HEX_PREFIX "\; device = mm-control\n\n") +set(HEX_NAME "MM-control-01.hex") +file(READ ${WORK_DIR}/firmware.hex HEX) +file(WRITE ${WORK_DIR}/${HEX_NAME} ${HEX_PREFIX}) +file(APPEND ${WORK_DIR}/${HEX_NAME} ${HEX}) +message(status "Successfully built MM-control-01.hex!")