-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathDEB.cmake
85 lines (72 loc) · 2.89 KB
/
DEB.cmake
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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
set(CPACK_GENERATOR "DEB")
set(CPACK_DEBIAN_FILE_NAME DEB-DEFAULT)
set(CPACK_DEB_COMPONENT_INSTALL ON)
set(CPACK_DEB_MAIN_COMPONENT "server")
set(CPACK_DEBIAN_SERVER_DEBUGINFO_PACKAGE ON)
include(cmake/Pack.cmake)
# rename server package name
set(CPACK_DEBIAN_SERVER_PACKAGE_NAME ${CPACK_PACKAGE_NAME})
set(CPACK_DEBIAN_PACKAGE_RELEASE ${OB_RELEASEID})
find_program(LSB_RELEASE_EXEC lsb_release)
if(LSB_RELEASE_EXEC)
execute_process(
COMMAND ${LSB_RELEASE_EXEC} -is
OUTPUT_VARIABLE DEBIAN_NAME
OUTPUT_STRIP_TRAILING_WHITESPACE
)
string(TOLOWER "${DEBIAN_NAME}" DEBIAN_NAME)
execute_process(
COMMAND ${LSB_RELEASE_EXEC} -rs
OUTPUT_VARIABLE DEBIAN_VERSION
OUTPUT_STRIP_TRAILING_WHITESPACE
)
endif(LSB_RELEASE_EXEC)
if(DEBIAN_NAME AND DEBIAN_VERSION)
set(CPACK_DEBIAN_PACKAGE_RELEASE "${CPACK_DEBIAN_PACKAGE_RELEASE}${DEBIAN_NAME}${DEBIAN_VERSION}")
endif()
set(CPACK_DEBIAN_PACKAGE_NAME ${CPACK_PACKAGE_NAME})
set(CPACK_PACKAGE_DESCRIPTION ${CPACK_PACKAGE_DESCRIPTION})
set(CPACK_PACKAGE_CONTACT "${OceanBase_CE_HOMEPAGE_URL}")
set(CPACK_DEBIAN_PACKAGE_MAINTAINER "OceanBase")
set(CPACK_DEBIAN_PACKAGE_SECTION "database")
set(CPACK_DEBIAN_PACKAGE_PRIORITY "Optional")
# systemd define on deb
if (OB_BUILD_OPENSOURCE)
set(CPACK_DEBIAN_SERVER_PACKAGE_DEPENDS "oceanbase-ce-libs (= ${CPACK_PACKAGE_VERSION}-${CPACK_DEBIAN_PACKAGE_RELEASE})")
set(CPACK_DEBIAN_SERVER_PACKAGE_DEPENDS "${CPACK_DEBIAN_SERVER_PACKAGE_DEPENDS}, jq, systemd")
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/tools/systemd/profile/pre_install.sh.template
${CMAKE_CURRENT_SOURCE_DIR}/tools/systemd/profile/preinst
@ONLY)
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/tools/systemd/profile/post_install.sh.template
${CMAKE_CURRENT_SOURCE_DIR}/tools/systemd/profile/postinst
@ONLY)
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/tools/systemd/profile/pre_uninstall.sh.template
${CMAKE_CURRENT_SOURCE_DIR}/tools/systemd/profile/prerm
@ONLY)
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/tools/systemd/profile/post_uninstall.sh.template
${CMAKE_CURRENT_SOURCE_DIR}/tools/systemd/profile/postrm
@ONLY)
set(CPACK_DEBIAN_SERVER_PACKAGE_CONTROL_EXTRA
${CMAKE_CURRENT_SOURCE_DIR}/tools/systemd/profile/postinst
${CMAKE_CURRENT_SOURCE_DIR}/tools/systemd/profile/prerm
${CMAKE_CURRENT_SOURCE_DIR}/tools/systemd/profile/postrm)
endif()
# add the deb post and pre script
if (OB_BUILD_OPENSOURCE)
install(FILES
tools/systemd/profile/postinst
tools/systemd/profile/prerm
tools/systemd/profile/postrm
DESTINATION profile
COMPONENT server)
endif()
# install cpack to make everything work
include(CPack)
#add deb target to create DEBS
add_custom_target(deb
COMMAND +make package
DEPENDS
observer obcdc_tailf obtable obtable_static
ob_admin ob_error ob_sql_proxy_parser_static
${BITCODE_TO_ELF_LIST}
)