summaryrefslogtreecommitdiff
path: root/cmake/Package.cmake
blob: 799fe84ddeaa03c20940eae442129496d6d1e3a2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
if(MACHINE STREQUAL ${AARCH64})
# Under the aarch64 architecture, marsio does not distinguish between machines
    if(CMAKE_BUILD_TYPE STREQUAL "Debug")
        set(PACKAGE_NAME_DEBUG "mrzcpd-debug")
    else()
        set(PACKAGE_NAME "mrzcpd")
    endif()
else()
    if(CMAKE_BUILD_TYPE STREQUAL "Debug")
        set(PACKAGE_NAME_DEBUG "mrzcpd-debug-${MACHINE}")
    else()
        set(PACKAGE_NAME "mrzcpd-${MACHINE}")
    endif()
endif()

if(CMAKE_BUILD_TYPE STREQUAL "Debug")
    set(CPACK_PACKAGE_NAME ${PACKAGE_NAME_DEBUG})
else()
    set(CPACK_PACKAGE_NAME ${PACKAGE_NAME})
endif()

# Must uninstall the debug package before install release package
if(CMAKE_BUILD_TYPE STREQUAL "Debug")
    set(CPACK_RPM_PACKAGE_CONFLICTS ${PACKAGE_NAME})
else()
    set(CPACK_RPM_PACKAGE_CONFLICTS ${PACKAGE_NAME_DEBUG})
endif()

message(STATUS "Package: ${CPACK_PACKAGE_NAME}")

set(CPACK_PACKAGE_VECDOR "Mesasoft@IIE")
set(CPACK_PACKAGE_VERSION_MAJOR "${MARSIO_VERSION_MAJOR}")
set(CPACK_PACKAGE_VERSION_MINOR "${MARSIO_VERSION_MINOR}")
set(CPACK_PACKAGE_VERSION_PATCH "${MARSIO_VERSION_PATCH}.${MARSIO_VERSION_BUILD}")
set(CPACK_PACKAGING_INSTALL_PREFIX ${CMAKE_INSTALL_PREFIX})

# RPM Build
set(CPACK_GENERATOR "RPM")
set(CPACK_RPM_AUTO_GENERATED_FILE_NAME ON)
set(CPACK_RPM_FILE_NAME "RPM-DEFAULT")
set(CPACK_RPM_PACKAGE_VENDOR "Mesasoft@IIE")
set(CPACK_RPM_PACKAGE_AUTOREQPROV "no")
set(CPACK_RPM_PACKAGE_RELEASE_DIST on)
set(CPACK_RPM_DEBUGINFO_PACKAGE on)
# set(CPACK_RPM_PACKAGE_DEBUG ON)
configure_file(${CMAKE_SOURCE_DIR}/cmake/PostInstall.in ${CMAKE_BINARY_DIR}/PostInstall.in @ONLY)
configure_file(${CMAKE_SOURCE_DIR}/cmake/PostUninstall.in ${CMAKE_BINARY_DIR}/PostUninstall.in @ONLY)
set(CPACK_RPM_POST_INSTALL_SCRIPT_FILE ${CMAKE_BINARY_DIR}/PostInstall.in)
set(CPACK_RPM_POST_UNINSTALL_SCRIPT_FILE ${CMAKE_BINARY_DIR}/PostUninstall.in)
set(CPACK_RPM_PRE_UNINSTALL_SCRIPT_FILE ${CMAKE_SOURCE_DIR}/cmake/PreUninstall.in)

# setup %config(noreplace)
set(CPACK_RPM_USER_FILELIST "%config(noreplace) ${CMAKE_INSTALL_PREFIX}/etc/mrglobal.conf"
							"%config(noreplace) ${CMAKE_INSTALL_PREFIX}/etc/mrtunnat.conf"
							"%config(noreplace) ${CMAKE_INSTALL_PREFIX}/etc/mrapm.conf"
                            "%config(noreplace) /etc/sysconfig/mrzcpd")
include(CPack)