diff --git a/CMakeLists.txt b/CMakeLists.txt index 669c428..d4010c1 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -186,11 +186,13 @@ ) if(TARGET mbed-post-build-bin-${MBED_TARGET}) - add_custom_target(mbed-post-build - ALL - DEPENDS - mbed-post-build-bin-${MBED_TARGET} - ) + # The artefacts must be created before they can be further manipulated + add_dependencies(mbed-post-build-bin-${MBED_TARGET} ${target}) + + # Add a post-build hook to the top-level CMake target in the form of a + # CMake custom target. The hook depends on Mbed target specific + # post-build CMake target which has a custom command attached to it. + add_custom_target(mbed-post-build ALL DEPENDS mbed-post-build-bin-${MBED_TARGET}) endif() endfunction() diff --git a/tools/cmake/mbed_set_post_build.cmake b/tools/cmake/mbed_set_post_build.cmake index c5480ab..22363e7 100644 --- a/tools/cmake/mbed_set_post_build.cmake +++ b/tools/cmake/mbed_set_post_build.cmake @@ -6,16 +6,11 @@ # macro(mbed_set_post_build_operation) - add_custom_target(mbed-post-build-bin-${mbed_target_name} - DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/${APP_TARGET}.bin - ) - - # Ensures the application artefacts are created before manipulating them. - add_dependencies(mbed-post-build-bin-${mbed_target_name} ${APP_TARGET}) + add_custom_target(mbed-post-build-bin-${mbed_target_name}) add_custom_command( - OUTPUT - ${CMAKE_CURRENT_BINARY_DIR}/${APP_TARGET}.bin + TARGET + mbed-post-build-bin-${mbed_target_name} POST_BUILD COMMAND ${post_build_command}