From af63f5066f926535afbbe08f3902d66262400348 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hauke=20Kr=C3=BCger?= Date: Wed, 20 Mar 2024 14:42:34 +0100 Subject: [PATCH] Changed link-frontend library to allow eak symbol magic in case of gcc --- cmake/common_local_lib_foot.cmake | 25 +++++++++++++------ cmake/hostlink.cmake | 3 ++- .../jvx-link-frontend/CMakeLists.txt | 1 + 3 files changed, 20 insertions(+), 9 deletions(-) diff --git a/cmake/common_local_lib_foot.cmake b/cmake/common_local_lib_foot.cmake index 8609ccfa..64a787da 100644 --- a/cmake/common_local_lib_foot.cmake +++ b/cmake/common_local_lib_foot.cmake @@ -215,14 +215,23 @@ endif() ### if(BUILD_STATIC) - message("Build STATIC Library ${JVX_TARGET_NAME_STATIC}") - if(CUDA_SOURCES) - add_library(${JVX_TARGET_NAME_STATIC} STATIC ${LOCAL_SOURCES} ${CUDA_SOURCES} ${ADDITIONAL_SOURCES} ${GENERATED_FILES} ${LOCAL_PCG_FILES} ${PCG_SOURCES} ${LOCAL_MCG_FILES} ${QT_RESOURCES} ${LOCAL_UI_SOURCES}) - - else() - add_library(${JVX_TARGET_NAME_STATIC} STATIC ${LOCAL_SOURCES} ${ADDITIONAL_SOURCES} ${GENERATED_FILES} ${LOCAL_PCG_FILES} ${PCG_SOURCES} ${LOCAL_MCG_FILES} ${QT_RESOURCES} ${LOCAL_UI_SOURCES}) - endif() - + if(CREATE_OBJECT_LIBRARY) + + message("Build OBJECT Library ${JVX_TARGET_NAME_STATIC}") + if(CUDA_SOURCES) + add_library(${JVX_TARGET_NAME_STATIC} OBJECT ${LOCAL_SOURCES} ${CUDA_SOURCES} ${ADDITIONAL_SOURCES} ${GENERATED_FILES} ${LOCAL_PCG_FILES} ${PCG_SOURCES} ${LOCAL_MCG_FILES} ${QT_RESOURCES} ${LOCAL_UI_SOURCES}) + else() + add_library(${JVX_TARGET_NAME_STATIC} OBJECT ${LOCAL_SOURCES} ${ADDITIONAL_SOURCES} ${GENERATED_FILES} ${LOCAL_PCG_FILES} ${PCG_SOURCES} ${LOCAL_MCG_FILES} ${QT_RESOURCES} ${LOCAL_UI_SOURCES}) + endif() + else() + message("Build STATIC Library ${JVX_TARGET_NAME_STATIC}") + if(CUDA_SOURCES) + add_library(${JVX_TARGET_NAME_STATIC} STATIC ${LOCAL_SOURCES} ${CUDA_SOURCES} ${ADDITIONAL_SOURCES} ${GENERATED_FILES} ${LOCAL_PCG_FILES} ${PCG_SOURCES} ${LOCAL_MCG_FILES} ${QT_RESOURCES} ${LOCAL_UI_SOURCES}) + else() + add_library(${JVX_TARGET_NAME_STATIC} STATIC ${LOCAL_SOURCES} ${ADDITIONAL_SOURCES} ${GENERATED_FILES} ${LOCAL_PCG_FILES} ${PCG_SOURCES} ${LOCAL_MCG_FILES} ${QT_RESOURCES} ${LOCAL_UI_SOURCES}) + endif() + endif() + # Copy variable used by both BUILD_STATIC and BUILD_SHARED but modified in this block set(ADDITIONAL_COMPILE_DEFINITIONS_STATIC "${ADDITIONAL_COMPILE_DEFINITIONS}") diff --git a/cmake/hostlink.cmake b/cmake/hostlink.cmake index c934238c..c62b02ad 100644 --- a/cmake/hostlink.cmake +++ b/cmake/hostlink.cmake @@ -29,8 +29,9 @@ jvxLWebConsoleTools_static ) + # We need to add this library with special magic to override the weak symbols in GCC if(JVX_LINK_WITH_CONSOLE_HOST_FRONTEND_BACKEND_LIB) - set(LOCAL_LIBS ${LOCAL_LIBS} jvx-link-frontend_static) + set(LOCAL_LIBS ${LOCAL_LIBS} ${WHOLE_ARCHIVE} jvx-link-frontend_static ${NO_WHOLE_ARCHIVE}) endif() # In case of standalone builds, we need to pull in some other libraries diff --git a/sources/jvxLibraries/jvx-link-frontend/CMakeLists.txt b/sources/jvxLibraries/jvx-link-frontend/CMakeLists.txt index e6f10ab6..842e2482 100644 --- a/sources/jvxLibraries/jvx-link-frontend/CMakeLists.txt +++ b/sources/jvxLibraries/jvx-link-frontend/CMakeLists.txt @@ -27,5 +27,6 @@ set(LOCAL_LIBS ${LOCAL_LIBS} ) set(BUILD_STATIC TRUE) +set(CREATE_OBJECT_LIBRARY TRUE) include(${JVX_CMAKE_DIR}/common_local_lib_foot.cmake)