mirror of
https://github.com/slsdetectorgroup/slsDetectorPackage.git
synced 2026-08-04 10:12:26 +02:00
Add support for building RPMs (#1439)
Build and Deploy on local RHEL9 / build (push) Successful in 2m5s
Build on RHEL9 docker image / build (push) Successful in 3m30s
Build and Deploy on local RHEL8 / build (push) Successful in 4m52s
Build on RHEL8 docker image / build (push) Successful in 5m3s
Run Simulator Tests on local RHEL9 / build (push) Successful in 14m43s
Run Simulator Tests on local RHEL8 / build (push) Successful in 18m15s
Build and Deploy on local RHEL9 / build (push) Successful in 2m5s
Build on RHEL9 docker image / build (push) Successful in 3m30s
Build and Deploy on local RHEL8 / build (push) Successful in 4m52s
Build on RHEL8 docker image / build (push) Successful in 5m3s
Run Simulator Tests on local RHEL9 / build (push) Successful in 14m43s
Run Simulator Tests on local RHEL8 / build (push) Successful in 18m15s
* rpm * versioned binaries * also zmq process * use distro style naming * added gui
This commit is contained in:
+31
-1
@@ -208,6 +208,7 @@ option(SLS_TUNE_LOCAL "tune to local machine" OFF)
|
||||
option(SLS_DEVEL_HEADERS "install headers for devel" OFF)
|
||||
option(SLS_USE_MOENCH "compile zmq and post processing for Moench" OFF)
|
||||
option(SLS_USE_JUNGFRAU "compile post processing for Jungfrau" OFF)
|
||||
option(SLS_INSTALL_VERSIONED_BINARIES "Add version number to binaries on install" OFF) #Needed for multi version RPM
|
||||
|
||||
#Convenience option to switch off defaults when building Moench binaries only
|
||||
option(SLS_BUILD_ONLY_MOENCH "compile only Moench" OFF)
|
||||
@@ -463,4 +464,33 @@ if(SLS_MASTER_PROJECT)
|
||||
set(CMAKE_INSTALL_DIR "share/cmake/${PROJECT_NAME}")
|
||||
set(PROJECT_LIBRARIES slsSupportShared slsDetectorShared slsReceiverShared)
|
||||
include(cmake/package_config.cmake)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
|
||||
|
||||
#Packaging
|
||||
# Generic CPack metadata
|
||||
set(CPACK_PACKAGE_NAME "slsDetectorPackage")
|
||||
set(CPACK_PACKAGE_VENDOR "Paul Scherrer Institut")
|
||||
set(CPACK_PACKAGE_VERSION "${PROJECT_VERSION}")
|
||||
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "DAQ software for PSI developed detectors")
|
||||
|
||||
# RPM-specific settings
|
||||
set(CPACK_GENERATOR "RPM")
|
||||
set(CPACK_RPM_FILE_NAME "RPM-DEFAULT")
|
||||
set(CPACK_RPM_PACKAGE_LICENSE "LGPL-3.0")
|
||||
set(CPACK_RPM_PACKAGE_GROUP "Applications/System")
|
||||
set(CPACK_RPM_PACKAGE_RELEASE 1)
|
||||
# Adds %{?dist} to the RPM Release field
|
||||
set(CPACK_RPM_PACKAGE_RELEASE_DIST ON)
|
||||
set(CPACK_RPM_PACKAGE_ARCHITECTURE "${CMAKE_SYSTEM_PROCESSOR}")
|
||||
set(CPACK_RPM_COMPONENT_INSTALL ON)
|
||||
|
||||
|
||||
set(CPACK_RPM_GUI_PACKAGE_REQUIRES
|
||||
"qt5-qtbase, qt5-qtbase-gui"
|
||||
)
|
||||
|
||||
#control which RPMs are generated
|
||||
set(CPACK_COMPONENTS_ALL cli receiver zmq gui)
|
||||
include(CPack)
|
||||
@@ -84,7 +84,19 @@ foreach(exe ${MOENCH_EXECUTABLES})
|
||||
set_property(TARGET ${exe} PROPERTY INTERPROCEDURAL_OPTIMIZATION True)
|
||||
endif()
|
||||
|
||||
# Mainly for RPMs to enable side by side installations of different versions
|
||||
if(SLS_INSTALL_VERSIONED_BINARIES)
|
||||
install(PROGRAMS "$<TARGET_FILE:${exe}>"
|
||||
DESTINATION bin
|
||||
RENAME "$<TARGET_FILE_BASE_NAME:${exe}>-${PROJECT_VERSION}"
|
||||
COMPONENT zmq
|
||||
)
|
||||
else()
|
||||
install(TARGETS ${exe}
|
||||
DESTINATION bin
|
||||
COMPONENT zmq
|
||||
)
|
||||
endif()
|
||||
|
||||
endforeach(exe ${MOENCH_EXECUTABLES})
|
||||
|
||||
install(TARGETS ${MOENCH_EXECUTABLES} DESTINATION bin)
|
||||
|
||||
@@ -121,9 +121,6 @@ endif()
|
||||
|
||||
install(TARGETS slsDetectorGui
|
||||
# EXPORT "${TARGETS_EXPORT_NAME}" #do not export gui
|
||||
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
|
||||
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
||||
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
||||
# PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
|
||||
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT gui
|
||||
)
|
||||
|
||||
|
||||
@@ -108,8 +108,22 @@ if(SLS_USE_TEXTCLIENT)
|
||||
if((CMAKE_BUILD_TYPE STREQUAL "Release") AND SLS_LTO_AVAILABLE)
|
||||
set_property(TARGET ${val1} PROPERTY INTERPROCEDURAL_OPTIMIZATION True)
|
||||
endif()
|
||||
|
||||
# Mainly for RPMs to enable side by side installations of different versions
|
||||
if(SLS_INSTALL_VERSIONED_BINARIES)
|
||||
install(PROGRAMS "$<TARGET_FILE:${val1}>"
|
||||
DESTINATION bin
|
||||
RENAME "$<TARGET_FILE_BASE_NAME:${val1}>-${PROJECT_VERSION}"
|
||||
COMPONENT cli
|
||||
)
|
||||
else()
|
||||
install(TARGETS ${val1}
|
||||
DESTINATION bin
|
||||
COMPONENT cli
|
||||
)
|
||||
endif()
|
||||
endforeach()
|
||||
install(TARGETS ${det_bin_names} DESTINATION bin)
|
||||
|
||||
|
||||
|
||||
endif(SLS_USE_TEXTCLIENT)
|
||||
|
||||
@@ -167,13 +167,31 @@ if (SLS_USE_RECEIVER_BINARIES)
|
||||
target_link_libraries(slsFrameSynchronizer PRIVATE "$<BUILD_INTERFACE:libzmq-static>")
|
||||
endif()
|
||||
|
||||
install(TARGETS slsReceiver slsMultiReceiver slsFrameSynchronizer
|
||||
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}/sls
|
||||
# Receiver binaries
|
||||
set(SLS_RECEIVER_BINARIES
|
||||
slsReceiver
|
||||
slsMultiReceiver
|
||||
slsFrameSynchronizer
|
||||
)
|
||||
if(SLS_INSTALL_VERSIONED_BINARIES)
|
||||
message(STATUS "Versioned binaries will be installed")
|
||||
foreach(target IN LISTS SLS_RECEIVER_BINARIES)
|
||||
install(PROGRAMS "$<TARGET_FILE:${target}>"
|
||||
DESTINATION ${CMAKE_INSTALL_BINDIR}
|
||||
RENAME "$<TARGET_FILE_BASE_NAME:${target}>-${PROJECT_VERSION}"
|
||||
COMPONENT receiver
|
||||
)
|
||||
endforeach()
|
||||
else()
|
||||
install(TARGETS ${SLS_RECEIVER_BINARIES}
|
||||
EXPORT "${TARGETS_EXPORT_NAME}"
|
||||
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
|
||||
COMPONENT receiver
|
||||
)
|
||||
endif()
|
||||
|
||||
|
||||
|
||||
|
||||
endif(SLS_USE_RECEIVER_BINARIES)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user