From f6e3183f453d3daf97e529d3b834da715b43c47b Mon Sep 17 00:00:00 2001 From: Dennis Klein Date: Sun, 17 Nov 2019 11:16:31 +0100 Subject: [PATCH] SDK commands: Link shared flatbuffers if no static avail --- CMakeLists.txt | 8 ++++++-- fairmq/sdk/commands/CMakeLists.txt | 8 +++++++- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index dc2d501e..f15d41e1 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -304,7 +304,7 @@ if(PROJECT_PACKAGE_DEPENDENCIES) message(STATUS " ") message(STATUS " ${Cyan}DEPENDENCY FOUND VERSION PREFIX${CR}") foreach(dep IN LISTS PROJECT_PACKAGE_DEPENDENCIES) - if(${dep}_VERSION) + if(${dep}_VERSION AND NOT ${dep}_VERSION STREQUAL "..") set(version_str "${BGreen}${${dep}_VERSION}${CR}") else() set(version_str "${BYellow}unknown${CR}") @@ -353,7 +353,11 @@ if(PROJECT_PACKAGE_DEPENDENCIES) get_target_property(fmt_include fmt::fmt INTERFACE_INCLUDE_DIRECTORIES) get_filename_component(prefix ${fmt_include}/.. ABSOLUTE) elseif(${dep} STREQUAL Flatbuffers) - get_target_property(flatbuffers_include flatbuffers::flatbuffers INTERFACE_INCLUDE_DIRECTORIES) + if(TARGET flatbuffers::flatbuffers) + get_target_property(flatbuffers_include flatbuffers::flatbuffers INTERFACE_INCLUDE_DIRECTORIES) + else() + get_target_property(flatbuffers_include flatbuffers::flatbuffers_shared INTERFACE_INCLUDE_DIRECTORIES) + endif() get_filename_component(prefix ${flatbuffers_include}/.. ABSOLUTE) else() get_filename_component(prefix ${${dep}_INCLUDE_DIR}/.. ABSOLUTE) diff --git a/fairmq/sdk/commands/CMakeLists.txt b/fairmq/sdk/commands/CMakeLists.txt index b7e2a84c..cb806d3c 100644 --- a/fairmq/sdk/commands/CMakeLists.txt +++ b/fairmq/sdk/commands/CMakeLists.txt @@ -23,13 +23,19 @@ configure_file(${CMAKE_CURRENT_SOURCE_DIR}/CommandsFormatDef.h.in ${CMAKE_CURREN add_library(${target} Commands.cxx Commands.h ${CMAKE_CURRENT_BINARY_DIR}/CommandsFormat.h ${CMAKE_CURRENT_BINARY_DIR}/CommandsFormatDef.h) add_library(FairMQ::${target} ALIAS ${target}) +# Some distros may not package the static library (e.g. Fedora), so we pick up the dynamic library instead +set(_flatbuffers flatbuffers::flatbuffers) +if(NOT TARGET flatbuffers::flatbuffers AND TARGET flatbuffers::flatbuffers_shared) + set(_flatbuffers flatbuffers::flatbuffers_shared) +endif() + target_link_libraries(${target} PUBLIC StateMachine Tools PRIVATE - flatbuffers::flatbuffers + ${_flatbuffers} ) target_include_directories(${target}