mirror of https://github.com/ARMmbed/mbed-os.git
Fix linker script incorrectly selected for bare-metal profile (#342)
mbed-os and mbed-baremetal library targets both are created, so we cannot use if(TARGET mbed-os) or if(TARGET mbed-baremetal) to determine which one the application target links to. Instead, determine by checking application target's LINK_LIBRARIES property.pull/15530/head
parent
40e3056f3d
commit
a49d8f2470
|
@ -120,18 +120,21 @@ function(mbed_set_post_build target)
|
||||||
# add linker script. Skip for greentea test code, there the linker script is set in mbed_setup_linker_script()
|
# add linker script. Skip for greentea test code, there the linker script is set in mbed_setup_linker_script()
|
||||||
if (NOT MBED_IS_STANDALONE)
|
if (NOT MBED_IS_STANDALONE)
|
||||||
if("${ARGN}" STREQUAL "")
|
if("${ARGN}" STREQUAL "")
|
||||||
if(TARGET mbed-os)
|
get_target_property(POST_BUILD_TARGET_LINK_LIBRARIES ${target} LINK_LIBRARIES)
|
||||||
|
if("mbed-os" IN_LIST POST_BUILD_TARGET_LINK_LIBRARIES)
|
||||||
get_target_property(LINKER_SCRIPT_PATH mbed-os LINKER_SCRIPT_PATH)
|
get_target_property(LINKER_SCRIPT_PATH mbed-os LINKER_SCRIPT_PATH)
|
||||||
target_link_options(${target}
|
target_link_options(${target}
|
||||||
PRIVATE
|
PRIVATE
|
||||||
"-T" "${LINKER_SCRIPT_PATH}"
|
"-T" "${LINKER_SCRIPT_PATH}"
|
||||||
)
|
)
|
||||||
elseif(TARGET mbed-baremetal)
|
elseif("mbed-baremetal" IN_LIST POST_BUILD_TARGET_LINK_LIBRARIES)
|
||||||
get_target_property(LINKER_SCRIPT_PATH mbed-baremetal LINKER_SCRIPT_PATH)
|
get_target_property(LINKER_SCRIPT_PATH mbed-baremetal LINKER_SCRIPT_PATH)
|
||||||
target_link_options(${target}
|
target_link_options(${target}
|
||||||
PRIVATE
|
PRIVATE
|
||||||
"-T" "${LINKER_SCRIPT_PATH}"
|
"-T" "${LINKER_SCRIPT_PATH}"
|
||||||
)
|
)
|
||||||
|
else()
|
||||||
|
message(FATAL_ERROR "Target ${target} used with mbed_set_post_build() but does not link to mbed-os or mbed-baremetal!")
|
||||||
endif()
|
endif()
|
||||||
else()
|
else()
|
||||||
message(STATUS "${target} uses custom linker script ${ARGV1}")
|
message(STATUS "${target} uses custom linker script ${ARGV1}")
|
||||||
|
|
Loading…
Reference in New Issue