2020-02-03 14:43:40 +01:00

121 lines
2.6 KiB
CMake
Executable File

set(SOURCES
src/Implementation.cpp
src/ClientInterface.cpp
src/Receiver.cpp
src/File.cpp
src/BinaryFile.cpp
src/ThreadObject.cpp
src/Listener.cpp
src/DataProcessor.cpp
src/DataStreamer.cpp
src/Fifo.cpp
)
# HDF5
if (SLS_USE_HDF5)
if (HDF5_FOUND)
add_definitions(
-DHDF5C ${HDF5_DEFINITIONS}
)
list (APPEND SOURCES
src/HDF5File.cpp
)
endif ()
endif (SLS_USE_HDF5)
add_library(slsReceiverShared SHARED
${SOURCES}
${HEADERS}
)
check_ipo_supported(RESULT result)
if(result)
set_property(TARGET slsReceiverShared PROPERTY INTERPROCEDURAL_OPTIMIZATION True)
endif()
target_link_libraries(slsReceiverShared PUBLIC
slsProjectOptions
slsProjectWarnings
slsSupportLib
)
target_include_directories(slsReceiverShared PUBLIC
"$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>"
"$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>")
# HDF5
if (SLS_USE_HDF5)
if (HDF5_FOUND)
target_link_libraries(slsReceiverShared PUBLIC
${HDF5_LIBRARIES})
target_include_directories(slsReceiverShared PUBLIC
${HDF5_INCLUDE_DIRS}
${CMAKE_INSTALL_PREFIX}/include)
endif ()
endif (SLS_USE_HDF5)
#What is included in slsReceiverLib?
set(PUBLICHEADERS
include/Receiver.h
)
set_target_properties(slsReceiverShared PROPERTIES
LIBRARY_OUTPUT_NAME SlsReceiver
LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin
PUBLIC_HEADER "${PUBLICHEADERS}"
)
add_executable(slsReceiver
src/ReceiverApp.cpp)
set_target_properties(slsReceiver PROPERTIES
RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin
)
target_link_libraries(slsReceiver PUBLIC
slsProjectOptions
slsProjectWarnings
slsSupportLib
slsReceiverShared
pthread
${ZeroMQ_LIBRARIES}
rt
)
add_executable(slsMultiReceiver
src/MultiReceiverApp.cpp)
set_target_properties(slsMultiReceiver PROPERTIES
RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin
)
target_link_libraries(slsMultiReceiver PUBLIC
slsProjectOptions
slsProjectWarnings
slsSupportLib
slsReceiverShared
pthread
${ZeroMQ_LIBRARIES}
rt
)
if (SLS_USE_TESTS)
add_subdirectory(tests)
endif(SLS_USE_TESTS)
install(TARGETS slsReceiverShared slsReceiver slsMultiReceiver
EXPORT "${TARGETS_EXPORT_NAME}"
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
install(FILES ${ZMQ_STATIC_ARCHIVE}
DESTINATION lib)