cmake: fix the linker type check for --whole-archive option

Checking that the host is macOS is not sufficient here, since the
linker is still a GNU linker when cross-compiling for a chip.
Instead, use the linker_type variable introduced in the previous
commit.
pull/10224/head
Ivan Grokhotkov 2022-11-21 13:08:05 +01:00
rodzic b47155a70b
commit 7a298f98ae
Nie znaleziono w bazie danych klucza dla tego podpisu
ID klucza GPG: 1E050E141B280628
1 zmienionych plików z 6 dodań i 6 usunięć

Wyświetl plik

@ -525,17 +525,17 @@ macro(project project_name)
__component_get_target(build_component_target ${build_component})
__component_get_property(whole_archive ${build_component_target} WHOLE_ARCHIVE)
if(whole_archive)
if(CMAKE_HOST_SYSTEM_NAME STREQUAL "Darwin")
message(STATUS "Component ${build_component} will be linked with -Wl,-force_load")
target_link_libraries(${project_elf} PRIVATE
"-Wl,-force_load"
${build_component})
else()
if(linker_type STREQUAL "GNU")
message(STATUS "Component ${build_component} will be linked with -Wl,--whole-archive")
target_link_libraries(${project_elf} PRIVATE
"-Wl,--whole-archive"
${build_component}
"-Wl,--no-whole-archive")
elseif(linker_type STREQUAL "Darwin")
message(STATUS "Component ${build_component} will be linked with -Wl,-force_load")
target_link_libraries(${project_elf} PRIVATE
"-Wl,-force_load"
${build_component})
endif()
else()
target_link_libraries(${project_elf} PRIVATE ${build_component})