mirror of https://github.com/ARMmbed/mbed-os.git
Fix post build mechanism with unique CMake custom targets
The CMake custom target must be unique to avoid more than one Mbed target adding the same. Only the CMake custom command added for the Mbed target being built is run as the custom CMake target now includes the Mbed target name.pull/14289/head
parent
ea6955bd1c
commit
68b6e6ff96
|
@ -195,11 +195,11 @@ function(mbed_generate_bin_hex target)
|
|||
VERBATIM
|
||||
)
|
||||
|
||||
if(TARGET mbed-post-build-bin)
|
||||
if(TARGET mbed-post-build-bin-${MBED_TARGET})
|
||||
add_custom_target(mbed-post-build
|
||||
ALL
|
||||
DEPENDS
|
||||
mbed-post-build-bin
|
||||
mbed-post-build-bin-${MBED_TARGET}
|
||||
)
|
||||
endif()
|
||||
endfunction()
|
||||
|
|
|
@ -59,4 +59,4 @@ target_compile_definitions(mbed-cysbsyskit-01
|
|||
"CY8C624AFNI_S2D43F"
|
||||
)
|
||||
|
||||
mbed_post_build_psoc6_merge_hex()
|
||||
mbed_post_build_psoc6_merge_hex("CYSBSYSKIT_01")
|
||||
|
|
|
@ -6,14 +6,18 @@ include(${MBED_PATH}/tools/cmake/mbed_set_post_build.cmake)
|
|||
#
|
||||
# Merge Cortex-M4 HEX and a Cortex-M0 HEX.
|
||||
#
|
||||
function(mbed_post_build_psoc6_merge_hex)
|
||||
function(mbed_post_build_psoc6_merge_hex mbed_target_name)
|
||||
find_package(Python3)
|
||||
|
||||
# Copy ${ARGN} to a variable first as it cannot be used directly with
|
||||
# the list() command
|
||||
set (extra_macro_args ${ARGN})
|
||||
|
||||
list(LENGTH cortex_m0_hex num_extra_args)
|
||||
# Get the number of arguments past the last expected argument
|
||||
list(LENGTH extra_macro_args num_extra_args)
|
||||
|
||||
if(${num_extra_args} GREATER 0)
|
||||
# Get extra argument as `cortex_m0_hex`
|
||||
list(GET extra_macro_args 0 cortex_m0_hex)
|
||||
set(post_build_command
|
||||
COMMAND ${Python3_EXECUTABLE} ${MBED_PATH}/targets/TARGET_Cypress/scripts/PSOC6.py
|
||||
|
|
|
@ -16,5 +16,3 @@ target_sources(mbed-lpc11xx
|
|||
)
|
||||
|
||||
target_link_libraries(mbed-lpc11xx INTERFACE mbed-lpc11xx-11cxx)
|
||||
|
||||
mbed_post_build_lpc_patch_vtable()
|
||||
|
|
|
@ -12,4 +12,4 @@ target_include_directories(mbed-arch-pro
|
|||
|
||||
target_link_libraries(mbed-arch-pro INTERFACE mbed-lpc176x)
|
||||
|
||||
mbed_post_build_lpc_patch_vtable()
|
||||
mbed_post_build_lpc_patch_vtable("ARCH_PRO")
|
||||
|
|
|
@ -16,4 +16,4 @@ add_library(mbed-lpc1768 INTERFACE)
|
|||
|
||||
target_link_libraries(mbed-lpc1768 INTERFACE mbed-mbed-lpc1768)
|
||||
|
||||
mbed_post_build_lpc_patch_vtable()
|
||||
mbed_post_build_lpc_patch_vtable("LPC1768")
|
||||
|
|
|
@ -33,4 +33,4 @@ target_sources(mbed-lpc54114-m4
|
|||
|
||||
mbed_set_linker_script(mbed-lpc54114-m4 ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE})
|
||||
|
||||
mbed_post_build_lpc_patch_vtable()
|
||||
mbed_post_build_lpc_patch_vtable("LPC54114")
|
||||
|
|
|
@ -94,4 +94,5 @@ target_link_libraries(mbed-lpc546xx
|
|||
mbed-lpc546xx-xpresso
|
||||
)
|
||||
|
||||
mbed_post_build_lpc_patch_vtable()
|
||||
mbed_post_build_lpc_patch_vtable("LPC546XX")
|
||||
mbed_post_build_lpc_patch_vtable("FF_LPC546XX")
|
||||
|
|
|
@ -6,7 +6,7 @@ include(${MBED_PATH}/tools/cmake/mbed_set_post_build.cmake)
|
|||
#
|
||||
# Patch an LPC target vector table in the binary file.
|
||||
#
|
||||
function(mbed_post_build_lpc_patch_vtable)
|
||||
function(mbed_post_build_lpc_patch_vtable mbed_target_name)
|
||||
find_package(Python3)
|
||||
|
||||
set(post_build_command
|
||||
|
|
|
@ -5,16 +5,17 @@
|
|||
# Sets the post build operation for Mbed targets.
|
||||
#
|
||||
macro(mbed_set_post_build_operation)
|
||||
add_custom_target(mbed-post-build-bin
|
||||
DEPENDS ${CMAKE_BINARY_DIR}/${APP_TARGET}.bin
|
||||
|
||||
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 ${APP_TARGET})
|
||||
add_dependencies(mbed-post-build-bin-${mbed_target_name} ${APP_TARGET})
|
||||
|
||||
add_custom_command(
|
||||
OUTPUT
|
||||
${CMAKE_BINARY_DIR}/${APP_TARGET}.bin
|
||||
${CMAKE_CURRENT_BINARY_DIR}/${APP_TARGET}.bin
|
||||
POST_BUILD
|
||||
COMMAND
|
||||
${post_build_command}
|
||||
|
|
Loading…
Reference in New Issue