Merge branch 'developer' into rxrmetadata

This commit is contained in:
maliakal_d 2020-09-07 11:53:41 +02:00
commit 30e06c6386
11 changed files with 87 additions and 67 deletions

View File

@ -63,17 +63,18 @@ find_package(ClangFormat)
check_ipo_supported(RESULT SLS_LTO_AVAILABLE) check_ipo_supported(RESULT SLS_LTO_AVAILABLE)
# Use ld.gold if it is available and isn't disabled explicitly # # Use ld.gold if it is available and isn't disabled explicitly
option(SLS_USE_LD_GOLD "Use GNU gold linker" ON) # option(SLS_USE_LD_GOLD "Use GNU gold linker" ON)
if (SLS_USE_LD_GOLD) # if (SLS_USE_LD_GOLD)
execute_process(COMMAND ${CMAKE_C_COMPILER} -fuse-ld=gold -Wl,--version ERROR_QUIET OUTPUT_VARIABLE LD_VERSION) # execute_process(COMMAND ${CMAKE_C_COMPILER} -fuse-ld=gold -Wl,--version ERROR_QUIET OUTPUT_VARIABLE LD_VERSION)
if ("${LD_VERSION}" MATCHES "GNU gold") # if ("${LD_VERSION}" MATCHES "GNU gold")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fuse-ld=gold") # set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fuse-ld=gold")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fuse-ld=gold") # set(CMAKE_STATIC_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fuse-ld=gold")
else () # set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fuse-ld=gold")
message(WARNING "GNU gold linker isn't available, using the default system linker.") # else ()
endif () # message(WARNING "GNU gold linker isn't available, using the default system linker.")
endif () # endif ()
# endif ()
set(CMAKE_EXPORT_COMPILE_COMMANDS ON) set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
if (NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES) if (NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)
@ -240,7 +241,7 @@ if(SLS_MASTER_PROJECT)
# Set install dir CMake packages # Set install dir CMake packages
set(CMAKE_INSTALL_DIR "share/cmake/${PROJECT_NAME}") set(CMAKE_INSTALL_DIR "share/cmake/${PROJECT_NAME}")
# Set the list of exported targets # Set the list of exported targets
set(PROJECT_LIBRARIES slsSupportLib slsDetectorShared slsReceiverShared) set(PROJECT_LIBRARIES slsSupportShared slsDetectorShared slsReceiverShared)
# Generate and install package config file and version # Generate and install package config file and version
include(cmake/package_config.cmake) include(cmake/package_config.cmake)
endif() endif()

View File

@ -33,6 +33,7 @@ requirements:
- {{ cdt('libselinux') }} # [linux] - {{ cdt('libselinux') }} # [linux]
- {{ cdt('libxdamage') }} # [linux] - {{ cdt('libxdamage') }} # [linux]
- {{ cdt('libxxf86vm') }} # [linux] - {{ cdt('libxxf86vm') }} # [linux]
- expat
host: host:
- libstdcxx-ng - libstdcxx-ng
@ -45,6 +46,7 @@ requirements:
- xorg-libxau - xorg-libxau
- xorg-libxrender - xorg-libxrender
- xorg-libxfixes - xorg-libxfixes
- expat
run: run:
- zeromq - zeromq
@ -96,3 +98,4 @@ outputs:
- {{ pin_subpackage('slsdetlib', exact=True) }} - {{ pin_subpackage('slsdetlib', exact=True) }}
- qwt 6.* - qwt 6.*
- qt 4.8.* - qt 4.8.*
- expat

View File

@ -59,14 +59,13 @@ set( HEADERS
#set(ROOT_INCLUDE_PATH ${CMAKE_CURRENT_SOURCE_DIR}) #set(ROOT_INCLUDE_PATH ${CMAKE_CURRENT_SOURCE_DIR})
# ROOT dictionary generation # ROOT dictionary generation
include("${ROOT_DIR}/modules/RootNewMacros.cmake") include("${ROOT_DIR}/RootMacros.cmake")
root_generate_dictionary(ctbDict ${HEADERS} LINKDEF ctbLinkDef.h) root_generate_dictionary(ctbDict ${HEADERS} LINKDEF ctbLinkDef.h)
add_library(ctbRootLib SHARED ctbDict.cxx) add_library(ctbRootLib SHARED ctbDict.cxx)
target_include_directories(ctbRootLib PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}) target_include_directories(ctbRootLib PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
target_link_libraries(ctbRootLib PUBLIC target_link_libraries(ctbRootLib PUBLIC
ROOT::Core ROOT::Core
slsDetectorShared slsDetectorShared
slsSupportLib
${ROOT_LIBRARIES} ${ROOT_LIBRARIES}
${ROOT_EXE_LINKER_FLAGS} ${ROOT_EXE_LINKER_FLAGS}
) )
@ -78,7 +77,6 @@ set_target_properties(
target_link_libraries(ctbGui PUBLIC target_link_libraries(ctbGui PUBLIC
slsDetectorShared slsDetectorShared
slsSupportLib
ctbRootLib ctbRootLib
${TIFF_LIBRARIES} ${TIFF_LIBRARIES}
) )

View File

@ -11,7 +11,7 @@ pybind11_add_module(_slsdet
target_link_libraries(_slsdet PUBLIC target_link_libraries(_slsdet PUBLIC
slsDetectorShared slsDetectorShared
slsReceiverShared slsReceiverShared
slsSupportLib slsSupportShared
${ZeroMQ_LIBRARIES} ${ZeroMQ_LIBRARIES}
) )

View File

@ -1,6 +1,6 @@
add_executable(using_logger using_logger.cpp) add_executable(using_logger using_logger.cpp)
target_link_libraries(using_logger target_link_libraries(using_logger
slsSupportLib slsSupportShared
pthread pthread
rt rt
) )
@ -22,7 +22,7 @@ set_target_properties(using_logger PROPERTIES
# add_executable(udp udp.cpp) # add_executable(udp udp.cpp)
# target_link_libraries(udp # target_link_libraries(udp
# slsDetectorShared # slsDetectorShared
# slsSupportLib # slsSupportShared
# pthread # pthread
# rt # rt
# fmt # fmt

View File

@ -23,7 +23,7 @@ foreach(exe ${MOENCH_EXECUTABLES})
target_link_libraries(${exe} target_link_libraries(${exe}
PUBLIC PUBLIC
slsSupportLib slsSupportShared
${ZeroMQ_LIBRARIES} ${ZeroMQ_LIBRARIES}
pthread pthread
tiff tiff

View File

@ -88,6 +88,7 @@ target_include_directories(slsDetectorGui PUBLIC
) )
target_link_libraries(slsDetectorGui PUBLIC target_link_libraries(slsDetectorGui PUBLIC
slsProjectOptions
slsProjectWarnings slsProjectWarnings
slsDetectorShared slsDetectorShared
${QT_QTCORE_LIBRARIES} ${QT_QTCORE_LIBRARIES}
@ -97,6 +98,7 @@ target_link_libraries(slsDetectorGui PUBLIC
ZLIB::ZLIB ZLIB::ZLIB
Qt4::QtOpenGL Qt4::QtOpenGL
Qt4::QtSvg Qt4::QtSvg
expat
) )
set_target_properties(slsDetectorGui PROPERTIES set_target_properties(slsDetectorGui PROPERTIES
@ -104,10 +106,10 @@ set_target_properties(slsDetectorGui PROPERTIES
) )
install(TARGETS slsDetectorGui install(TARGETS slsDetectorGui
# EXPORT "${TARGETS_EXPORT_NAME}" EXPORT "${TARGETS_EXPORT_NAME}"
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
# LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
# ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
# PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} # PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
) )

View File

@ -27,7 +27,7 @@ target_include_directories(slsDetectorShared PUBLIC
target_link_libraries(slsDetectorShared target_link_libraries(slsDetectorShared
PUBLIC PUBLIC
slsSupportLib slsSupportStatic
pthread pthread
rt rt
slsProjectOptions slsProjectOptions

View File

@ -34,10 +34,12 @@ if((CMAKE_BUILD_TYPE STREQUAL "Release") AND SLS_LTO_AVAILABLE)
set_property(TARGET slsReceiverShared PROPERTY INTERPROCEDURAL_OPTIMIZATION True) set_property(TARGET slsReceiverShared PROPERTY INTERPROCEDURAL_OPTIMIZATION True)
endif() endif()
target_link_libraries(slsReceiverShared PUBLIC target_link_libraries(slsReceiverShared
PUBLIC
slsProjectOptions slsProjectOptions
slsProjectWarnings slsSupportStatic
slsSupportLib PRIVATE
slsProjectWarnings #don't propagate warnigns
) )
target_include_directories(slsReceiverShared PUBLIC target_include_directories(slsReceiverShared PUBLIC
@ -78,13 +80,13 @@ set_target_properties(slsReceiver PROPERTIES
) )
target_link_libraries(slsReceiver PUBLIC target_link_libraries(slsReceiver PUBLIC
slsProjectOptions PUBLIC
slsProjectWarnings
slsSupportLib
slsReceiverShared slsReceiverShared
pthread pthread
${ZeroMQ_LIBRARIES} ${ZeroMQ_LIBRARIES}
rt rt
PRIVATE
slsProjectWarnings
) )
add_executable(slsMultiReceiver add_executable(slsMultiReceiver
@ -95,14 +97,14 @@ set_target_properties(slsMultiReceiver PROPERTIES
RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin
) )
target_link_libraries(slsMultiReceiver PUBLIC target_link_libraries(slsMultiReceiver
slsProjectOptions PUBLIC
slsProjectWarnings
slsSupportLib
slsReceiverShared slsReceiverShared
pthread pthread
${ZeroMQ_LIBRARIES} ${ZeroMQ_LIBRARIES}
rt rt
PRIVATE
slsProjectWarnings
) )
if (SLS_USE_TESTS) if (SLS_USE_TESTS)

View File

@ -12,9 +12,7 @@ set(SOURCES
src/sls_detector_exceptions.cpp src/sls_detector_exceptions.cpp
) )
set(HEADERS # Header files to install as a part of the library
)
set(PUBLICHEADERS set(PUBLICHEADERS
include/sls_detector_defs.h include/sls_detector_defs.h
include/sls_detector_exceptions.h include/sls_detector_exceptions.h
@ -26,6 +24,10 @@ set(PUBLICHEADERS
include/TimeHelper.h include/TimeHelper.h
) )
# Additional headers to be installed if SLS_DEVEL_HEADERS
# is specified as an option. Aim is to give the developer
# access to utilities in the support library while
# at the same time offer a minimal install
if(SLS_DEVEL_HEADERS) if(SLS_DEVEL_HEADERS)
set(PUBLICHEADERS set(PUBLICHEADERS
${PUBLICHEADERS} ${PUBLICHEADERS}
@ -44,54 +46,66 @@ if(SLS_DEVEL_HEADERS)
) )
endif() endif()
add_library(slsSupportLib SHARED # Create an object library to avoid building the library twice
add_library(slsSupportObject OBJECT
${SOURCES} ${SOURCES}
${HEADERS} ${HEADERS}
) )
target_include_directories(slsSupportObject
if((CMAKE_BUILD_TYPE STREQUAL "Release") AND SLS_LTO_AVAILABLE) PUBLIC
set_property(TARGET slsSupportLib PROPERTY INTERPROCEDURAL_OPTIMIZATION True)
endif()
target_include_directories(slsSupportLib PUBLIC
"$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>" "$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>"
"$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>" "$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>"
) PRIVATE
target_include_directories(slsSupportLib PRIVATE
${ZeroMQ_INCLUDE_DIRS} ${ZeroMQ_INCLUDE_DIRS}
) )
target_link_libraries(slsSupportObject
set_target_properties(slsSupportLib PROPERTIES PUBLIC
LIBRARY_OUTPUT_NAME SlsSupport
LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin
PUBLIC_HEADER "${PUBLICHEADERS}"
)
target_link_libraries(slsSupportLib
PUBLIC
slsProjectOptions slsProjectOptions
# ${ZeroMQ_LIBRARIES} # zmq
zmq ${ZeroMQ_LIBRARIES}
rapidjson rapidjson
PRIVATE PRIVATE
slsProjectWarnings slsProjectWarnings
) )
if (SLS_USE_TESTS) if (SLS_USE_TESTS)
add_subdirectory(tests) add_subdirectory(tests)
endif(SLS_USE_TESTS) endif(SLS_USE_TESTS)
# Install the library # Add shared library version of the support lib
install(TARGETS slsSupportLib add_library(slsSupportShared SHARED $<TARGET_OBJECTS:slsSupportObject>)
target_link_libraries(slsSupportShared PUBLIC slsSupportObject)
set_target_properties(slsSupportShared PROPERTIES
LIBRARY_OUTPUT_NAME SlsSupport
LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin
PUBLIC_HEADER "${PUBLICHEADERS}"
)
# Add static version of the support lib
add_library(slsSupportStatic STATIC $<TARGET_OBJECTS:slsSupportObject>)
target_link_libraries(slsSupportStatic PUBLIC slsSupportObject)
set_target_properties(slsSupportStatic PROPERTIES
ARCHIVE_OUTPUT_NAME SlsSupportStatic
ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin
PUBLIC_HEADER "${PUBLICHEADERS}"
)
if((CMAKE_BUILD_TYPE STREQUAL "Release") AND SLS_LTO_AVAILABLE)
set_property(TARGET slsSupportObject PROPERTY INTERPROCEDURAL_OPTIMIZATION True)
set_property(TARGET slsSupportShared PROPERTY INTERPROCEDURAL_OPTIMIZATION True)
set_property(TARGET slsSupportStatic PROPERTY INTERPROCEDURAL_OPTIMIZATION True)
endif()
install(TARGETS slsSupportShared slsSupportStatic slsSupportObject
EXPORT "${TARGETS_EXPORT_NAME}" EXPORT "${TARGETS_EXPORT_NAME}"
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
) )

View File

@ -8,12 +8,12 @@ set(SLS_TEST_SOURCES
) )
add_executable(testclient src/testclient.cpp) add_executable(testclient src/testclient.cpp)
target_link_libraries(testclient slsSupportLib) target_link_libraries(testclient slsSupportShared)
set_target_properties(testclient PROPERTIES set_target_properties(testclient PROPERTIES
RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin) RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
add_executable(testserver src/testserver.cpp) add_executable(testserver src/testserver.cpp)
target_link_libraries(testserver slsSupportLib) target_link_libraries(testserver slsSupportShared)
set_target_properties(testserver PROPERTIES set_target_properties(testserver PROPERTIES
RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin) RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
@ -21,7 +21,7 @@ add_executable(tests ${SLS_TEST_SOURCES})
target_link_libraries(tests target_link_libraries(tests
slsProjectOptions slsProjectOptions
slsProjectWarnings slsProjectWarnings
slsSupportLib slsSupportShared
pthread pthread
rt rt
) )