mirror of
https://github.com/slsdetectorgroup/slsDetectorPackage.git
synced 2025-06-07 18:40:42 +02:00
Static libraries (#213)
This commit is contained in:
parent
f6fff9d916
commit
121a3ad733
@ -61,6 +61,7 @@ find_package(ClangFormat)
|
|||||||
|
|
||||||
#Enable LTO if available
|
#Enable LTO if available
|
||||||
check_ipo_supported(RESULT SLS_LTO_AVAILABLE)
|
check_ipo_supported(RESULT SLS_LTO_AVAILABLE)
|
||||||
|
message(STATUS "SLS_LTO_AVAILABLE:" ${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
|
||||||
|
@ -5,10 +5,6 @@ mkdir -p $PREFIX/include/sls
|
|||||||
# mkdir $PREFIX/include/slsDetectorPackage
|
# mkdir $PREFIX/include/slsDetectorPackage
|
||||||
|
|
||||||
#Shared and static libraries
|
#Shared and static libraries
|
||||||
# cp build/bin/libSlsDetector.so $PREFIX/lib/.
|
|
||||||
# cp build/bin/libSlsReceiver.so $PREFIX/lib/.
|
|
||||||
# cp build/bin/libSlsSupport.so $PREFIX/lib/.
|
|
||||||
|
|
||||||
cp build/install/lib/* $PREFIX/lib/
|
cp build/install/lib/* $PREFIX/lib/
|
||||||
|
|
||||||
#Binaries
|
#Binaries
|
||||||
|
@ -24,7 +24,7 @@ foreach(exe ${MOENCH_EXECUTABLES})
|
|||||||
|
|
||||||
target_link_libraries(${exe}
|
target_link_libraries(${exe}
|
||||||
PUBLIC
|
PUBLIC
|
||||||
slsSupportShared
|
slsSupportStatic
|
||||||
${ZeroMQ_LIBRARIES}
|
${ZeroMQ_LIBRARIES}
|
||||||
pthread
|
pthread
|
||||||
TIFF::TIFF
|
TIFF::TIFF
|
||||||
@ -37,4 +37,9 @@ foreach(exe ${MOENCH_EXECUTABLES})
|
|||||||
set_target_properties(${exe} PROPERTIES
|
set_target_properties(${exe} PROPERTIES
|
||||||
RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin
|
RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin
|
||||||
)
|
)
|
||||||
|
if(SLS_LTO_AVAILABLE)
|
||||||
|
set_property(TARGET ${exe} PROPERTY INTERPROCEDURAL_OPTIMIZATION True)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
|
||||||
endforeach(exe ${MOENCH_EXECUTABLES})
|
endforeach(exe ${MOENCH_EXECUTABLES})
|
||||||
|
@ -90,7 +90,7 @@ target_include_directories(slsDetectorGui PUBLIC
|
|||||||
target_link_libraries(slsDetectorGui PUBLIC
|
target_link_libraries(slsDetectorGui PUBLIC
|
||||||
slsProjectOptions
|
slsProjectOptions
|
||||||
slsProjectWarnings
|
slsProjectWarnings
|
||||||
slsDetectorShared
|
slsDetectorStatic
|
||||||
${QT_QTCORE_LIBRARIES}
|
${QT_QTCORE_LIBRARIES}
|
||||||
${QT_QTGUI_LIBRARIES}
|
${QT_QTGUI_LIBRARIES}
|
||||||
${QWT_LIBRARIES}
|
${QWT_LIBRARIES}
|
||||||
@ -104,6 +104,9 @@ target_link_libraries(slsDetectorGui PUBLIC
|
|||||||
set_target_properties(slsDetectorGui PROPERTIES
|
set_target_properties(slsDetectorGui PROPERTIES
|
||||||
RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin
|
RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin
|
||||||
)
|
)
|
||||||
|
if(SLS_LTO_AVAILABLE)
|
||||||
|
set_property(TARGET slsDetectorGui PROPERTY INTERPROCEDURAL_OPTIMIZATION True)
|
||||||
|
endif()
|
||||||
|
|
||||||
install(TARGETS slsDetectorGui
|
install(TARGETS slsDetectorGui
|
||||||
EXPORT "${TARGETS_EXPORT_NAME}"
|
EXPORT "${TARGETS_EXPORT_NAME}"
|
||||||
|
@ -6,26 +6,16 @@ set(SOURCES
|
|||||||
src/CmdParser.cpp
|
src/CmdParser.cpp
|
||||||
)
|
)
|
||||||
|
|
||||||
set(HEADERS
|
add_library(slsDetectorObject OBJECT
|
||||||
)
|
|
||||||
|
|
||||||
add_library(slsDetectorShared SHARED
|
|
||||||
${SOURCES}
|
${SOURCES}
|
||||||
${HEADERS}
|
|
||||||
)
|
)
|
||||||
|
|
||||||
|
target_include_directories(slsDetectorObject PUBLIC
|
||||||
if((CMAKE_BUILD_TYPE STREQUAL "Release") AND SLS_LTO_AVAILABLE)
|
|
||||||
set_property(TARGET slsDetectorShared PROPERTY INTERPROCEDURAL_OPTIMIZATION True)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
|
|
||||||
target_include_directories(slsDetectorShared 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}>"
|
||||||
)
|
)
|
||||||
|
|
||||||
target_link_libraries(slsDetectorShared
|
target_link_libraries(slsDetectorObject
|
||||||
PUBLIC
|
PUBLIC
|
||||||
slsSupportStatic
|
slsSupportStatic
|
||||||
pthread
|
pthread
|
||||||
@ -42,13 +32,33 @@ set(PUBLICHEADERS
|
|||||||
include/sls/Detector.h
|
include/sls/Detector.h
|
||||||
include/sls/Result.h
|
include/sls/Result.h
|
||||||
)
|
)
|
||||||
|
|
||||||
|
#Shared library
|
||||||
|
add_library(slsDetectorShared SHARED $<TARGET_OBJECTS:slsDetectorObject>)
|
||||||
|
target_link_libraries(slsDetectorShared PUBLIC slsDetectorObject)
|
||||||
set_target_properties(slsDetectorShared PROPERTIES
|
set_target_properties(slsDetectorShared PROPERTIES
|
||||||
LIBRARY_OUTPUT_NAME SlsDetector
|
LIBRARY_OUTPUT_NAME SlsDetector
|
||||||
LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin
|
LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin
|
||||||
PUBLIC_HEADER "${PUBLICHEADERS}"
|
PUBLIC_HEADER "${PUBLICHEADERS}"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
#Static library
|
||||||
|
add_library(slsDetectorStatic STATIC $<TARGET_OBJECTS:slsDetectorObject>)
|
||||||
|
target_link_libraries(slsDetectorStatic PUBLIC slsDetectorObject)
|
||||||
|
|
||||||
|
set_target_properties(slsDetectorStatic PROPERTIES
|
||||||
|
ARCHIVE_OUTPUT_NAME SlsDetectorStatic
|
||||||
|
ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin
|
||||||
|
PUBLIC_HEADER "${PUBLICHEADERS}"
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
# message("Detector LTO_AVAILABLE:" ${SLS_LTO_AVAILABLE})
|
||||||
|
if((CMAKE_BUILD_TYPE STREQUAL "Release") AND SLS_LTO_AVAILABLE)
|
||||||
|
set_property(TARGET slsDetectorObject PROPERTY INTERPROCEDURAL_OPTIMIZATION True)
|
||||||
|
set_property(TARGET slsDetectorStatic PROPERTY INTERPROCEDURAL_OPTIMIZATION True)
|
||||||
|
set_property(TARGET slsDetectorShared PROPERTY INTERPROCEDURAL_OPTIMIZATION True)
|
||||||
|
endif()
|
||||||
|
|
||||||
# Loop over list to generate command line binaries
|
# Loop over list to generate command line binaries
|
||||||
set(bin_names "sls_detector_put"
|
set(bin_names "sls_detector_put"
|
||||||
@ -66,7 +76,7 @@ foreach(val RANGE ${len2})
|
|||||||
|
|
||||||
add_executable(${val1} src/CmdLineApp.cpp)
|
add_executable(${val1} src/CmdLineApp.cpp)
|
||||||
target_link_libraries(${val1}
|
target_link_libraries(${val1}
|
||||||
slsDetectorShared
|
slsDetectorStatic
|
||||||
pthread
|
pthread
|
||||||
${ZeroMQ_LIBRARIES}
|
${ZeroMQ_LIBRARIES}
|
||||||
rt
|
rt
|
||||||
@ -75,7 +85,7 @@ foreach(val RANGE ${len2})
|
|||||||
RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin
|
RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin
|
||||||
COMPILE_DEFINITIONS ${val2}=1
|
COMPILE_DEFINITIONS ${val2}=1
|
||||||
)
|
)
|
||||||
if(LTO_AVAILABLE)
|
if(SLS_LTO_AVAILABLE)
|
||||||
set_property(TARGET ${val1} PROPERTY INTERPROCEDURAL_OPTIMIZATION True)
|
set_property(TARGET ${val1} PROPERTY INTERPROCEDURAL_OPTIMIZATION True)
|
||||||
endif()
|
endif()
|
||||||
endforeach()
|
endforeach()
|
||||||
@ -89,7 +99,7 @@ if (SLS_USE_TESTS)
|
|||||||
endif(SLS_USE_TESTS)
|
endif(SLS_USE_TESTS)
|
||||||
|
|
||||||
|
|
||||||
install(TARGETS slsDetectorShared
|
install(TARGETS slsDetectorShared slsDetectorObject slsDetectorStatic
|
||||||
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}
|
||||||
|
@ -11,6 +11,11 @@ set(SOURCES
|
|||||||
src/Fifo.cpp
|
src/Fifo.cpp
|
||||||
)
|
)
|
||||||
|
|
||||||
|
set(PUBLICHEADERS
|
||||||
|
include/sls/Receiver.h
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
# HDF5
|
# HDF5
|
||||||
if (SLS_USE_HDF5)
|
if (SLS_USE_HDF5)
|
||||||
if (HDF5_FOUND)
|
if (HDF5_FOUND)
|
||||||
@ -23,18 +28,18 @@ if (SLS_USE_HDF5)
|
|||||||
endif ()
|
endif ()
|
||||||
endif (SLS_USE_HDF5)
|
endif (SLS_USE_HDF5)
|
||||||
|
|
||||||
|
# Create an object library to avoid building the library twice
|
||||||
add_library(slsReceiverShared SHARED
|
# This is only used during the build phase
|
||||||
|
add_library(slsReceiverObject OBJECT
|
||||||
${SOURCES}
|
${SOURCES}
|
||||||
${HEADERS}
|
|
||||||
)
|
)
|
||||||
|
|
||||||
|
target_include_directories(slsReceiverObject PUBLIC
|
||||||
|
"$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>"
|
||||||
|
"$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>"
|
||||||
|
)
|
||||||
|
|
||||||
if((CMAKE_BUILD_TYPE STREQUAL "Release") AND SLS_LTO_AVAILABLE)
|
target_link_libraries(slsReceiverObject
|
||||||
set_property(TARGET slsReceiverShared PROPERTY INTERPROCEDURAL_OPTIMIZATION True)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
target_link_libraries(slsReceiverShared
|
|
||||||
PUBLIC
|
PUBLIC
|
||||||
slsProjectOptions
|
slsProjectOptions
|
||||||
slsSupportStatic
|
slsSupportStatic
|
||||||
@ -42,35 +47,44 @@ target_link_libraries(slsReceiverShared
|
|||||||
slsProjectWarnings #don't propagate warnigns
|
slsProjectWarnings #don't propagate warnigns
|
||||||
)
|
)
|
||||||
|
|
||||||
target_include_directories(slsReceiverShared PUBLIC
|
|
||||||
"$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>"
|
|
||||||
"$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>")
|
|
||||||
|
|
||||||
|
|
||||||
# HDF5
|
# HDF5
|
||||||
if (SLS_USE_HDF5)
|
if (SLS_USE_HDF5)
|
||||||
if (HDF5_FOUND)
|
if (HDF5_FOUND)
|
||||||
target_link_libraries(slsReceiverShared PUBLIC
|
target_link_libraries(slsReceiverObject PUBLIC
|
||||||
${HDF5_LIBRARIES})
|
${HDF5_LIBRARIES})
|
||||||
target_include_directories(slsReceiverShared PUBLIC
|
target_include_directories(slsReceiverObject PUBLIC
|
||||||
${HDF5_INCLUDE_DIRS}
|
${HDF5_INCLUDE_DIRS}
|
||||||
${CMAKE_INSTALL_PREFIX}/include)
|
${CMAKE_INSTALL_PREFIX}/include)
|
||||||
endif ()
|
endif ()
|
||||||
endif (SLS_USE_HDF5)
|
endif (SLS_USE_HDF5)
|
||||||
|
|
||||||
|
|
||||||
#What is included in slsReceiverLib?
|
#Shared library
|
||||||
set(PUBLICHEADERS
|
add_library(slsReceiverShared SHARED $<TARGET_OBJECTS:slsReceiverObject>)
|
||||||
include/sls/Receiver.h
|
target_link_libraries(slsReceiverShared PUBLIC slsReceiverObject)
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
set_target_properties(slsReceiverShared PROPERTIES
|
set_target_properties(slsReceiverShared PROPERTIES
|
||||||
LIBRARY_OUTPUT_NAME SlsReceiver
|
LIBRARY_OUTPUT_NAME SlsReceiver
|
||||||
LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin
|
LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin
|
||||||
PUBLIC_HEADER "${PUBLICHEADERS}"
|
PUBLIC_HEADER "${PUBLICHEADERS}"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
#Static library
|
||||||
|
add_library(slsReceiverStatic STATIC $<TARGET_OBJECTS:slsReceiverObject>)
|
||||||
|
target_link_libraries(slsReceiverStatic PUBLIC slsReceiverObject)
|
||||||
|
set_target_properties(slsReceiverStatic PROPERTIES
|
||||||
|
ARCHIVE_OUTPUT_NAME SlsReceiverStatic
|
||||||
|
ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin
|
||||||
|
PUBLIC_HEADER "${PUBLICHEADERS}"
|
||||||
|
)
|
||||||
|
|
||||||
|
# message("Receiver LTO_AVAILABLE:" ${SLS_LTO_AVAILABLE})
|
||||||
|
if((CMAKE_BUILD_TYPE STREQUAL "Release") AND SLS_LTO_AVAILABLE)
|
||||||
|
set_property(TARGET slsReceiverObject PROPERTY INTERPROCEDURAL_OPTIMIZATION True)
|
||||||
|
set_property(TARGET slsReceiverStatic PROPERTY INTERPROCEDURAL_OPTIMIZATION True)
|
||||||
|
set_property(TARGET slsReceiverShared PROPERTY INTERPROCEDURAL_OPTIMIZATION True)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
|
||||||
add_executable(slsReceiver
|
add_executable(slsReceiver
|
||||||
src/ReceiverApp.cpp)
|
src/ReceiverApp.cpp)
|
||||||
|
|
||||||
@ -78,10 +92,13 @@ add_executable(slsReceiver
|
|||||||
set_target_properties(slsReceiver PROPERTIES
|
set_target_properties(slsReceiver PROPERTIES
|
||||||
RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin
|
RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin
|
||||||
)
|
)
|
||||||
|
if(SLS_LTO_AVAILABLE)
|
||||||
|
set_property(TARGET slsReceiver PROPERTY INTERPROCEDURAL_OPTIMIZATION True)
|
||||||
|
endif()
|
||||||
|
|
||||||
target_link_libraries(slsReceiver PUBLIC
|
target_link_libraries(slsReceiver PUBLIC
|
||||||
PUBLIC
|
PUBLIC
|
||||||
slsReceiverShared
|
slsReceiverStatic
|
||||||
pthread
|
pthread
|
||||||
${ZeroMQ_LIBRARIES}
|
${ZeroMQ_LIBRARIES}
|
||||||
rt
|
rt
|
||||||
@ -96,10 +113,13 @@ add_executable(slsMultiReceiver
|
|||||||
set_target_properties(slsMultiReceiver PROPERTIES
|
set_target_properties(slsMultiReceiver PROPERTIES
|
||||||
RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin
|
RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin
|
||||||
)
|
)
|
||||||
|
if(SLS_LTO_AVAILABLE)
|
||||||
|
set_property(TARGET slsMultiReceiver PROPERTY INTERPROCEDURAL_OPTIMIZATION True)
|
||||||
|
endif()
|
||||||
|
|
||||||
target_link_libraries(slsMultiReceiver
|
target_link_libraries(slsMultiReceiver
|
||||||
PUBLIC
|
PUBLIC
|
||||||
slsReceiverShared
|
slsReceiverStatic
|
||||||
pthread
|
pthread
|
||||||
${ZeroMQ_LIBRARIES}
|
${ZeroMQ_LIBRARIES}
|
||||||
rt
|
rt
|
||||||
@ -111,7 +131,10 @@ if (SLS_USE_TESTS)
|
|||||||
add_subdirectory(tests)
|
add_subdirectory(tests)
|
||||||
endif(SLS_USE_TESTS)
|
endif(SLS_USE_TESTS)
|
||||||
|
|
||||||
install(TARGETS slsReceiverShared slsReceiver slsMultiReceiver
|
|
||||||
|
|
||||||
|
|
||||||
|
install(TARGETS slsReceiverShared slsReceiver slsMultiReceiver slsReceiverObject slsReceiverStatic
|
||||||
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}
|
||||||
@ -119,5 +142,5 @@ install(TARGETS slsReceiverShared slsReceiver slsMultiReceiver
|
|||||||
PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/sls
|
PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/sls
|
||||||
)
|
)
|
||||||
|
|
||||||
install(FILES ${ZMQ_STATIC_ARCHIVE}
|
# install(FILES ${ZMQ_STATIC_ARCHIVE}
|
||||||
DESTINATION lib)
|
# DESTINATION lib)
|
||||||
|
@ -87,7 +87,6 @@ set_target_properties(slsSupportShared PROPERTIES
|
|||||||
|
|
||||||
# Add static version of the support lib
|
# Add static version of the support lib
|
||||||
add_library(slsSupportStatic STATIC $<TARGET_OBJECTS:slsSupportObject>)
|
add_library(slsSupportStatic STATIC $<TARGET_OBJECTS:slsSupportObject>)
|
||||||
|
|
||||||
target_link_libraries(slsSupportStatic PUBLIC slsSupportObject)
|
target_link_libraries(slsSupportStatic PUBLIC slsSupportObject)
|
||||||
|
|
||||||
set_target_properties(slsSupportStatic PROPERTIES
|
set_target_properties(slsSupportStatic PROPERTIES
|
||||||
|
Loading…
x
Reference in New Issue
Block a user