From 87b2a064aec8b4ef4ce0761fe9831ccfd58834da Mon Sep 17 00:00:00 2001 From: Pierre-Alain Loizeau <p.-a.loizeau@gsi.de> Date: Wed, 24 Jan 2024 11:22:21 +0000 Subject: [PATCH] Fix boost requirements and deps for flesnet ipc in cmake files Add missing iostreams and system requirement and dependency Add special case for macosx When using libboost_iostreams below 1.80.0 libzstd is linked explicitly but not found even if installed in /usr/local/lib so we need to add this path to the target properties. --- CMakeLists.txt | 2 +- external/InstallFlesnet.cmake | 25 ++++++++++++++++++------- 2 files changed, 19 insertions(+), 8 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index f65eaf1c61..9f450c8803 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -137,7 +137,7 @@ endif() #Searching for Boost Package -find_package(Boost COMPONENTS serialization regex filesystem log log_setup container program_options thread) +find_package(Boost COMPONENTS serialization regex filesystem log log_setup container program_options thread iostreams system) if(Boost_FOUND) list(APPEND packages Boost) endif() diff --git a/external/InstallFlesnet.cmake b/external/InstallFlesnet.cmake index 18ae595100..44f3813e33 100644 --- a/external/InstallFlesnet.cmake +++ b/external/InstallFlesnet.cmake @@ -131,19 +131,30 @@ list(APPEND dir_to_link ${Boost_FILESYSTEM_LIBRARY} ${Boost_REGEX_LIBRARY} ${Boost_SERIALIZATION_LIBRARY} - ${Boost_ASIO_LIBRARY} - ${Boost_BEAST_LIBRARY} + ${Boost_SYSTEM_LIBRARY} # Needed for the monitoring library linking + ${Boost_IOSTREAMS_LIBRARY} # needed for the fles_ipc library linking fmt::fmt ) if(NOT APPLE) list(APPEND dir_to_link ${Boost_THREAD_LIBRARY} -lrt) endif() -set_target_properties(external::fles_ipc PROPERTIES - IMPORTED_LOCATION ${FLESNET_DESTDIR}/src/flesnet-build/lib/fles_ipc/${CMAKE_STATIC_LIBRARY_PREFIX}fles_ipc${CMAKE_STATIC_LIBRARY_SUFFIX} - INTERFACE_INCLUDE_DIRECTORIES ${CMAKE_CURRENT_SOURCE_DIR}/flesnet/lib/fles_ipc - IMPORTED_LINK_INTERFACE_LIBRARIES "${dir_to_link}" -) +# Hack such that for boost versions below 1.80.0 libzstd is found +if(APPLE AND Boost_VERSION LESS 1.80.0) + set_target_properties(external::fles_ipc PROPERTIES + IMPORTED_LOCATION ${FLESNET_DESTDIR}/src/flesnet-build/lib/fles_ipc/${CMAKE_STATIC_LIBRARY_PREFIX}fles_ipc${CMAKE_STATIC_LIBRARY_SUFFIX} + INTERFACE_INCLUDE_DIRECTORIES ${CMAKE_CURRENT_SOURCE_DIR}/flesnet/lib/fles_ipc + IMPORTED_LINK_INTERFACE_LIBRARIES "${dir_to_link}" + INTERFACE_LINK_DIRECTORIES "/usr/local/lib" + ) +else () + set_target_properties(external::fles_ipc PROPERTIES + IMPORTED_LOCATION ${FLESNET_DESTDIR}/src/flesnet-build/lib/fles_ipc/${CMAKE_STATIC_LIBRARY_PREFIX}fles_ipc${CMAKE_STATIC_LIBRARY_SUFFIX} + INTERFACE_INCLUDE_DIRECTORIES ${CMAKE_CURRENT_SOURCE_DIR}/flesnet/lib/fles_ipc + IMPORTED_LINK_INTERFACE_LIBRARIES "${dir_to_link}" + ) +endif() + -- GitLab