From e38be45215da0f191e0e6ef5dd6783c459435af2 Mon Sep 17 00:00:00 2001 From: jolavillette Date: Tue, 2 Jun 2026 15:14:42 +0200 Subject: [PATCH] Address PR review: link heavy cryptographic dependencies (RNP, Botan) privately via absolute paths --- CMakeLists.txt | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 6e93dd1bd..7476d925c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -319,16 +319,11 @@ target_link_libraries(${PROJECT_NAME} PRIVATE OpenSSL::SSL OpenSSL::Crypto) if(RS_RNPLIB) find_library(BOTAN_LIBRARY NAMES botan botan-3 botan-2 libbotan-3 libbotan-2 REQUIRED) - # Add RNP build directories to linker search path - target_link_directories(${PROJECT_NAME} PUBLIC - ${CMAKE_CURRENT_SOURCE_DIR}/../supportlibs/librnp/Build/src/lib - ${CMAKE_CURRENT_SOURCE_DIR}/../supportlibs/librnp/Build/src/libsexpp - ) - - # Link libraries by name, including RNP libs and dependencies first - target_link_libraries(${PROJECT_NAME} PUBLIC - rnp # Link by name - sexpp + # Link RNP libraries by absolute path and with PRIVATE visibility to prevent leaking symbols + # to downstream targets (retroshare-gui, plugins), fixing the Windows "too many symbols" error. + target_link_libraries(${PROJECT_NAME} PRIVATE + "${CMAKE_CURRENT_SOURCE_DIR}/../supportlibs/librnp/Build/src/lib/${CMAKE_STATIC_LIBRARY_PREFIX}rnp${CMAKE_STATIC_LIBRARY_SUFFIX}" + "${CMAKE_CURRENT_SOURCE_DIR}/../supportlibs/librnp/Build/src/libsexpp/${CMAKE_STATIC_LIBRARY_PREFIX}sexpp${CMAKE_STATIC_LIBRARY_SUFFIX}" ${BOTAN_LIBRARY} json-c bz2