RPM.cmake 4.4 KB
Newer Older
O
oceanbase-admin 已提交
1 2 3 4 5 6 7 8
set(CPACK_GENERATOR "RPM")
# use seperated RPM SPECs and generate different RPMs
set(CPACK_COMPONENTS_IGNORE_GROUPS 1)
set(CPACK_RPM_COMPONENT_INSTALL ON)
# use "server" as main component so its RPM filename won't have "server"
set(CPACK_RPM_MAIN_COMPONENT "server")
# let rpmbuild determine rpm filename
set(CPACK_RPM_FILE_NAME "RPM-DEFAULT")
9
set(CPACK_RPM_PACKAGE_RELEASE ${OB_RELEASEID})
O
oceanbase-admin 已提交
10 11
set(CPACK_RPM_PACKAGE_RELEASE_DIST ON)
# RPM package informations.
X
xh0 已提交
12
set(CPACK_RPM_RELOCATION_PATHS /usr /home/admin/oceanbase)
O
oceanbase-admin 已提交
13
set(CPACK_PACKAGING_INSTALL_PREFIX /home/admin/oceanbase)
X
xh0 已提交
14
list(APPEND CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST_ADDITION "/home/admin/oceanbase")
O
oceanbase-admin 已提交
15 16 17
set(CPACK_PACKAGE_NAME "oceanbase-ce")
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "OceanBase CE is a distributed relational database")
set(CPACK_PACKAGE_VENDOR "Ant Group CO., Ltd.")
L
LINxiansheng 已提交
18
set(CPACK_PACKAGE_VERSION 3.1.1)
O
oceanbase-admin 已提交
19 20
set(CPACK_PACKAGE_VERSION_MAJOR 3)
set(CPACK_PACKAGE_VERSION_MINOR 1)
L
LINxiansheng 已提交
21
set(CPACK_PACKAGE_VERSION_PATCH 1)
O
oceanbase-admin 已提交
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
set(CPACK_RPM_PACKAGE_GROUP "Applications/Databases")
set(CPACK_RPM_PACKAGE_URL "https://open.oceanbase.com")
set(CPACK_RPM_PACKAGE_DESCRIPTION "OceanBase CE is a distributed relational database")
set(CPACK_RPM_PACKAGE_LICENSE "Mulan PubL v2.")
set(CPACK_RPM_DEFAULT_USER "admin")
set(CPACK_RPM_DEFAULT_GROUP "admin")
set(CPACK_RPM_SPEC_MORE_DEFINE
  "%global _missing_build_ids_terminate_build 0
%global _find_debuginfo_opts -g
%define __debug_install_post %{_rpmconfigdir}/find-debuginfo.sh %{?_find_debuginfo_opts} %{_builddir}/%{?buildsubdir};%{nil}
%define debug_package %{nil}")

## TIPS
#
# - PATH is relative to the **ROOT directory** of project other than the cmake directory.

## server
install(PROGRAMS
  tools/timezone/import_time_zone_info.py
  ${CMAKE_BINARY_DIR}/src/observer/observer
  $<$<STREQUAL:${ARCHITECTURE},"x86_64">:tools/timezone/mysql_tzinfo_to_sql>
  DESTINATION bin
  COMPONENT server)

install(FILES
  tools/timezone/timezone_V1.log
  DESTINATION etc
  COMPONENT server)

M
MizuhaHimuraki 已提交
51 52
## oceanbase-devel
# liboblog.so and libob_sql_proxy_parser_static.a
X
xh0 已提交
53
set(OCEANBASE_DEVEL_LIB_FILES
O
oceanbase-admin 已提交
54
  ${CMAKE_BINARY_DIR}/src/sql/parser/libob_sql_proxy_parser_static.a
X
xh0 已提交
55 56
)
set(OCEANBASE_DEVEL_INCLUDE_FILES
M
MizuhaHimuraki 已提交
57
  deps/oblib/src/lib/ob_errno.h
O
oceanbase-admin 已提交
58 59 60 61 62 63
  deps/oblib/src/common/sql_mode/ob_sql_mode.h
  src/sql/parser/ob_item_type.h
  src/sql/parser/ob_sql_parser.h
  src/sql/parser/parse_malloc.h
  src/sql/parser/parser_proxy_func.h
  src/sql/parser/parse_node.h
X
xh0 已提交
64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81
)
set(OCEANBASE_DEVEL_BIN_FILES "")

if (OB_BUILD_LIBOBLOG)
  # lib
  list(APPEND OCEANBASE_DEVEL_LIB_FILES ${CMAKE_BINARY_DIR}/src/liboblog/src/liboblog.so)
  list(APPEND OCEANBASE_DEVEL_LIB_FILES ${CMAKE_BINARY_DIR}/src/liboblog/src/liboblog.so.1)
  list(APPEND OCEANBASE_DEVEL_LIB_FILES ${CMAKE_BINARY_DIR}/src/liboblog/src/liboblog.so.1.0.0)

  # include
  list(APPEND OCEANBASE_DEVEL_INCLUDE_FILES src/liboblog/src/liboblog.h)

  # bin
  list(APPEND OCEANBASE_DEVEL_BIN_FILES ${CMAKE_BINARY_DIR}/src/liboblog/tests/oblog_tailf)
endif()

set(CPACK_RPM_DEVEL_DEFAULT_USER "root")
set(CPACK_RPM_DEVEL_DEFAULT_GROUP "root")
M
MizuhaHimuraki 已提交
82 83

install(PROGRAMS
X
xh0 已提交
84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99
  ${OCEANBASE_DEVEL_LIB_FILES}
  DESTINATION /usr/lib
  COMPONENT devel
)

install(FILES
  ${OCEANBASE_DEVEL_INCLUDE_FILES}
  DESTINATION /usr/include
  COMPONENT devel
)

install(PROGRAMS
  ${OCEANBASE_DEVEL_BIN_FILES}
  DESTINATION /usr/bin
  COMPONENT devel
)
O
oceanbase-admin 已提交
100 101 102 103 104 105 106 107 108 109 110 111

## oceanbase-libs
install(PROGRAMS
  deps/3rd/usr/local/oceanbase/deps/devel/lib/libaio.so.1
  deps/3rd/usr/local/oceanbase/deps/devel/lib/libaio.so.1.0.1
  deps/3rd/usr/local/oceanbase/deps/devel/lib/libaio.so
  deps/3rd/usr/local/oceanbase/deps/devel/lib/mariadb/libmariadb.so
  deps/3rd/usr/local/oceanbase/deps/devel/lib/mariadb/libmariadb.so.3
  DESTINATION lib
  COMPONENT libs
  )

X
xh0 已提交
112
# utils
X
xh0 已提交
113 114 115
set(CPACK_RPM_UTILS_DEFAULT_USER "root")
set(CPACK_RPM_UTILS_DEFAULT_GROUP "root")

X
xh0 已提交
116 117 118 119 120 121 122 123 124 125 126
install(PROGRAMS
  ${CMAKE_BINARY_DIR}/tools/ob_admin/ob_admin
  ${CMAKE_BINARY_DIR}/tools/ob_error/src/ob_error
  DESTINATION /usr/bin
  COMPONENT utils
)
file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/utils_post.script "/sbin/ldconfig /home/admin/oceanbase/lib")
set(CPACK_RPM_UTILS_POST_INSTALL_SCRIPT_FILE  ${CMAKE_CURRENT_BINARY_DIR}/utils_post.script)
file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/utils_postun.script "/sbin/ldconfig")
set(CPACK_RPM_UTILS_POST_UNINSTALL_SCRIPT_FILE  ${CMAKE_CURRENT_BINARY_DIR}/utils_postun.script)

O
oceanbase-admin 已提交
127 128 129 130 131 132 133
# install cpack to make everything work
include(CPack)

#add rpm target to create RPMS
add_custom_target(rpm
  COMMAND +make package
  DEPENDS
X
xh0 已提交
134
  observer ob_admin ob_error
M
MizuhaHimuraki 已提交
135
  ob_sql_proxy_parser_static)