63 lines
2.7 KiB
CMake
63 lines
2.7 KiB
CMake
# CPack configuration for package generation
|
|
# This file contains all CPack settings for generating deb and rpm packages
|
|
|
|
# Set package metadata using project variables
|
|
set(CPACK_PACKAGE_NAME "${PROJECT_NAME}")
|
|
set(CPACK_PACKAGE_VERSION "${PROJECT_VERSION}")
|
|
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY
|
|
"Salmanoff - A sensor management and control system")
|
|
set(CPACK_PACKAGE_VENDOR "Salmanoff Project")
|
|
set(CPACK_PACKAGE_CONTACT "maintainer@salmanoff.org")
|
|
|
|
# Set package description
|
|
set(CPACK_PACKAGE_DESCRIPTION
|
|
"Salmanoff is a comprehensive sensor management and control system that\n"
|
|
"provides unified interfaces for various sensor devices including LiDAR\n"
|
|
"systems. It features modular architecture with support for multiple\n"
|
|
"device types, asynchronous processing, and real-time data handling."
|
|
)
|
|
|
|
# License information
|
|
set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/LICENSE")
|
|
set(CPACK_RESOURCE_FILE_README "${CMAKE_CURRENT_SOURCE_DIR}/README.md")
|
|
|
|
# Enable deb and rpm generators
|
|
set(CPACK_GENERATOR "DEB;RPM")
|
|
|
|
# DEB package specific settings (Ubuntu)
|
|
set(CPACK_DEBIAN_PACKAGE_MAINTAINER
|
|
"Salmanoff Project <maintainer@salmanoff.org>")
|
|
set(CPACK_DEBIAN_PACKAGE_SECTION "science")
|
|
set(CPACK_DEBIAN_PACKAGE_PRIORITY "optional")
|
|
# Target Ubuntu distribution
|
|
set(CPACK_DEBIAN_PACKAGE_DISTRIBUTION "ubuntu")
|
|
# Build dependencies (from builddeps file)
|
|
# These are needed to build the package from source
|
|
set(CPACK_DEBIAN_PACKAGE_BUILD_DEPENDS
|
|
"build-essential, cmake (>= 3.16), libboost-all-dev, flex, bison, ocl-icd-opencl-dev, liburing-dev")
|
|
|
|
# Runtime dependencies (from builddeps file - runtime equivalents)
|
|
set(CPACK_DEBIAN_PACKAGE_DEPENDS
|
|
"libboost-system1.74.0 | libboost-system1.73.0 | libboost-system1.72.0, libboost-log1.74.0 | libboost-log1.73.0 | libboost-log1.72.0, libc6, libstdc++6, ocl-icd-libopencl1 | libopencl1, liburing2 | liburing1")
|
|
set(CPACK_DEBIAN_PACKAGE_RECOMMENDS "libxcb1, libx11-6")
|
|
set(CPACK_DEBIAN_PACKAGE_SUGGESTS "livox-sdk")
|
|
|
|
# RPM package specific settings
|
|
set(CPACK_RPM_PACKAGE_LICENSE "Proprietary")
|
|
set(CPACK_RPM_PACKAGE_GROUP "Applications/Engineering")
|
|
set(CPACK_RPM_PACKAGE_URL "https://github.com/salmanoff/salmanoff")
|
|
set(CPACK_RPM_PACKAGE_REQUIRES "boost-system >= 1.72.0, boost-log >= 1.72.0, glibc, libstdc++, ocl-icd, liburing")
|
|
set(CPACK_RPM_PACKAGE_SUGGESTS "xcb, libX11, livox-sdk")
|
|
|
|
# Package file naming using project variables
|
|
set(CPACK_PACKAGE_FILE_NAME
|
|
"${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}-${CMAKE_SYSTEM_PROCESSOR}")
|
|
|
|
# Enable automatic dependency detection for Debian packages
|
|
# This uses dpkg-shlibdeps to automatically detect shared library dependencies
|
|
set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS ON)
|
|
|
|
# Set compression
|
|
set(CPACK_DEB_COMPONENT_INSTALL ON)
|
|
set(CPACK_RPM_COMPONENT_INSTALL ON)
|