From 83ce71dd3814a3c06812818bbc506ed6dcdd02a3 Mon Sep 17 00:00:00 2001 From: Josef Angstenberger Date: Wed, 5 Feb 2025 00:09:35 +0100 Subject: [PATCH] Tasking: Enable WHOLE_ARCHIVE link feature Issue: #26426 --- Modules/Compiler/Tasking.cmake | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/Modules/Compiler/Tasking.cmake b/Modules/Compiler/Tasking.cmake index 36e0a868b0..086ead99f5 100644 --- a/Modules/Compiler/Tasking.cmake +++ b/Modules/Compiler/Tasking.cmake @@ -33,6 +33,14 @@ macro(__compiler_tasking lang) set(CMAKE_${lang}_COMPILE_OPTIONS_WARNING_AS_ERROR "--warnings-as-errors") set(CMAKE_${lang}_LINK_MODE DRIVER) + # Features for LINK_LIBRARY generator expression + if( CMAKE_TASKING_TOOLSET STREQUAL "SmartCode" + OR (CMAKE_TASKING_TOOLSET STREQUAL "TriCore" AND CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 4.2)) + ## WHOLE_ARCHIVE: Force loading all members of an archive + set(CMAKE_${lang}_LINK_LIBRARY_USING_WHOLE_ARCHIVE "LINKER:--whole-archive=") + set(CMAKE_${lang}_LINK_LIBRARY_USING_WHOLE_ARCHIVE_SUPPORTED TRUE) + set(CMAKE_${lang}_LINK_LIBRARY_WHOLE_ARCHIVE_ATTRIBUTES LIBRARY_TYPE=STATIC DEDUPLICATION=YES OVERRIDE=DEFAULT) + endif() string(APPEND CMAKE_${lang}_FLAGS_INIT " ") string(APPEND CMAKE_${lang}_FLAGS_DEBUG_INIT " -O0 -g")