SDK commands: Link shared flatbuffers if no static avail

This commit is contained in:
Dennis Klein 2019-11-17 11:16:31 +01:00
parent 71325828f6
commit f6e3183f45
No known key found for this signature in database
GPG Key ID: 08E62D23FA0ECBBC
2 changed files with 13 additions and 3 deletions

View File

@ -304,7 +304,7 @@ if(PROJECT_PACKAGE_DEPENDENCIES)
message(STATUS " ") message(STATUS " ")
message(STATUS " ${Cyan}DEPENDENCY FOUND VERSION PREFIX${CR}") message(STATUS " ${Cyan}DEPENDENCY FOUND VERSION PREFIX${CR}")
foreach(dep IN LISTS PROJECT_PACKAGE_DEPENDENCIES) 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}") set(version_str "${BGreen}${${dep}_VERSION}${CR}")
else() else()
set(version_str "${BYellow}unknown${CR}") 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_target_property(fmt_include fmt::fmt INTERFACE_INCLUDE_DIRECTORIES)
get_filename_component(prefix ${fmt_include}/.. ABSOLUTE) get_filename_component(prefix ${fmt_include}/.. ABSOLUTE)
elseif(${dep} STREQUAL Flatbuffers) 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) get_filename_component(prefix ${flatbuffers_include}/.. ABSOLUTE)
else() else()
get_filename_component(prefix ${${dep}_INCLUDE_DIR}/.. ABSOLUTE) get_filename_component(prefix ${${dep}_INCLUDE_DIR}/.. ABSOLUTE)

View File

@ -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(${target} Commands.cxx Commands.h ${CMAKE_CURRENT_BINARY_DIR}/CommandsFormat.h ${CMAKE_CURRENT_BINARY_DIR}/CommandsFormatDef.h)
add_library(FairMQ::${target} ALIAS ${target}) 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} target_link_libraries(${target}
PUBLIC PUBLIC
StateMachine StateMachine
Tools Tools
PRIVATE PRIVATE
flatbuffers::flatbuffers ${_flatbuffers}
) )
target_include_directories(${target} target_include_directories(${target}