From 1728e04b8c3a0130044fc71e69cdea839318a73e Mon Sep 17 00:00:00 2001 From: Torsten Rasmussen Date: Mon, 2 Sep 2024 09:31:08 +0200 Subject: [PATCH] cmake: fix check_set_linker_property() function Fix check_set_linker_property() to correctly handle multiple linker flags passed on function call. Signed-off-by: Torsten Rasmussen --- cmake/modules/extensions.cmake | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/cmake/modules/extensions.cmake b/cmake/modules/extensions.cmake index 5d9d16384e0..2e3dc14e3b2 100644 --- a/cmake/modules/extensions.cmake +++ b/cmake/modules/extensions.cmake @@ -2393,18 +2393,20 @@ function(check_set_linker_property) list(GET LINKER_PROPERTY_PROPERTY 0 property) list(REMOVE_AT LINKER_PROPERTY_PROPERTY 0) - set(option ${LINKER_PROPERTY_PROPERTY}) - string(MAKE_C_IDENTIFIER check${option} check) + foreach(option ${LINKER_PROPERTY_PROPERTY}) + string(MAKE_C_IDENTIFIER check${option} check) - set(SAVED_CMAKE_REQUIRED_FLAGS ${CMAKE_REQUIRED_FLAGS}) - set(CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS} ${option}") - zephyr_check_compiler_flag(C "" ${check}) - set(CMAKE_REQUIRED_FLAGS ${SAVED_CMAKE_REQUIRED_FLAGS}) + set(SAVED_CMAKE_REQUIRED_FLAGS ${CMAKE_REQUIRED_FLAGS}) + set(CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS} ${option}") + zephyr_check_compiler_flag(C "" ${check}) + set(CMAKE_REQUIRED_FLAGS ${SAVED_CMAKE_REQUIRED_FLAGS}) - if(${${check}}) - set_property(TARGET ${LINKER_PROPERTY_TARGET} ${APPEND} PROPERTY ${property} ${option}) - endif() + if(${${check}}) + set_property(TARGET ${LINKER_PROPERTY_TARGET} ${APPEND} PROPERTY ${property} ${option}) + set(APPEND "APPEND") + endif() + endforeach() endfunction() # 'set_compiler_property' is a function that sets the property for the C and