set(SOURCES src/multiSlsDetector.cpp src/multiSlsDetectorClient.cpp src/slsDetectorUsers.cpp src/slsDetectorCommand.cpp src/slsDetector.cpp src/Detector.cpp src/CmdProxy.cpp ) set(HEADERS ) add_library(slsDetectorShared SHARED ${SOURCES} ${HEADERS} ) check_ipo_supported(RESULT result) if(result) set_property(TARGET slsDetectorShared PROPERTY INTERPROCEDURAL_OPTIMIZATION True) endif() target_include_directories(slsDetectorShared PUBLIC "$" "$" ) target_link_libraries(slsDetectorShared PUBLIC slsProjectOptions slsProjectWarnings slsSupportLib ${ZeroMQ_LIBRARIES} ) set(PUBLICHEADERS include/SharedMemory.h include/slsDetector.h include/slsDetectorUsers.h include/detectorData.h include/multiSlsDetector.h include/Detector.h include/Result.h ) set_target_properties(slsDetectorShared PROPERTIES LIBRARY_OUTPUT_NAME SlsDetector LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin PUBLIC_HEADER "${PUBLICHEADERS}" ) # add_subdirectory(slsDetectorClient) add_executable(sls_detector_get src/sls_detector_client.cpp ) target_link_libraries(sls_detector_get slsProjectOptions slsProjectWarnings slsDetectorShared slsSupportLib pthread ${ZeroMQ_LIBRARIES} rt ) set_target_properties(sls_detector_get PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin COMPILE_DEFINITIONS GET=1 ) add_executable(sls_detector_put src/sls_detector_client.cpp ) target_link_libraries(sls_detector_put slsProjectOptions slsProjectWarnings slsDetectorShared pthread ${ZeroMQ_LIBRARIES} rt ) set_target_properties(sls_detector_put PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin COMPILE_DEFINITIONS PUT=1 ) add_executable(sls_detector_acquire src/sls_detector_client.cpp ) target_link_libraries(sls_detector_acquire slsProjectOptions slsProjectWarnings slsDetectorShared pthread ${ZeroMQ_LIBRARIES} rt ) set_target_properties(sls_detector_acquire PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin COMPILE_DEFINITIONS READOUT=1 ) add_executable(sls_detector_help src/sls_detector_client.cpp ) target_link_libraries(sls_detector_help slsProjectOptions slsProjectWarnings slsDetectorShared pthread ${ZeroMQ_LIBRARIES} rt ) set_target_properties(sls_detector_help PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin COMPILE_DEFINITIONS HELP=1 ) check_ipo_supported(RESULT result) if(result) set_property(TARGET sls_detector_help PROPERTY INTERPROCEDURAL_OPTIMIZATION True) set_property(TARGET sls_detector_get PROPERTY INTERPROCEDURAL_OPTIMIZATION True) set_property(TARGET sls_detector_put PROPERTY INTERPROCEDURAL_OPTIMIZATION True) set_property(TARGET sls_detector_acquire PROPERTY INTERPROCEDURAL_OPTIMIZATION True) endif() install(TARGETS sls_detector_put sls_detector_get sls_detector_acquire sls_detector_help DESTINATION bin) # if(DOXYGEN_FOUND) # add_custom_target(doc # ${DOXYGEN_EXECUTABLE} # ${CMAKE_CURRENT_SOURCE_DIR}/slsDetectorUsers.doxy # WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} # COMMENT "Generating API documentation with Doxygen" VERBATIM # ) # endif() if (SLS_USE_TESTS) add_subdirectory(tests) endif(SLS_USE_TESTS) install(TARGETS slsDetectorShared 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} )