New command line app and removing slsDetectorCommand (#69)

* WIP

* WIP

* WIP

* WIP

* config2 working

* removed slsDetectorCommand

* WIP

* added test file

* more tests
This commit is contained in:
Erik Fröjdh
2019-11-18 09:29:17 +01:00
committed by Dhanya Thattil
parent 6a27207875
commit fa2c842745
23 changed files with 5964 additions and 1451 deletions

View File

@ -1,8 +1,6 @@
set(SOURCES
src/multiSlsDetector.cpp
src/multiSlsDetectorClient.cpp
src/slsDetectorUsers.cpp
src/slsDetectorCommand.cpp
src/slsDetector.cpp
src/Detector.cpp
src/CmdProxy.cpp
@ -18,9 +16,9 @@ add_library(slsDetectorShared SHARED
)
check_ipo_supported(RESULT result)
if(result)
# Do we have link time optimization?
check_ipo_supported(RESULT LTO_AVAILABLE)
if(LTO_AVAILABLE)
set_property(TARGET slsDetectorShared PROPERTY INTERPROCEDURAL_OPTIMIZATION True)
endif()
@ -52,92 +50,41 @@ set_target_properties(slsDetectorShared PROPERTIES
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()
# Loop over list to generate command line binaries
set(bin_names "sls_detector_put"
"sls_detector_get"
"sls_detector_acquire"
"sls_detector_help")
set(cmd_name "PUT" "GET" "READOUT" "HELP")
list(LENGTH bin_names len1)
math(EXPR len2 "${len1} - 1")
foreach(val RANGE ${len2})
list(GET bin_names ${val} val1)
list(GET cmd_name ${val} val2)
message(STATUS "${val1} ${val2}")
add_executable(${val1} src/CmdLineApp.cpp)
target_link_libraries(${val1}
slsDetectorShared
pthread
${ZeroMQ_LIBRARIES}
rt
)
set_target_properties(${val1} PROPERTIES
RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin
COMPILE_DEFINITIONS ${val2}=1
)
if(LTO_AVAILABLE)
set_property(TARGET ${val1} PROPERTY INTERPROCEDURAL_OPTIMIZATION True)
endif()
endforeach()
install(TARGETS ${bin_names} DESTINATION bin)
if (SLS_USE_TESTS)
add_subdirectory(tests)