summaryrefslogtreecommitdiff
path: root/cmake
diff options
context:
space:
mode:
authorSergei Golubchik <serg@mariadb.org>2018-09-26 20:49:51 +0200
committerSergei Golubchik <serg@mariadb.org>2018-09-28 16:37:06 +0200
commit57e0da50bbef8164635317785b67dd468a908327 (patch)
tree89d1ed179afce8b040c8f2dfcfe179042ff27b2e /cmake
parent7aba6f8f8853acd18d471793f8b72aa1412b8151 (diff)
parentdcbd51cee628d8d8fec9ff5476a6afc855b007aa (diff)
downloadmariadb-git-57e0da50bbef8164635317785b67dd468a908327.tar.gz
Merge branch '10.2' into 10.3
Diffstat (limited to 'cmake')
-rw-r--r--cmake/CPackRPM.cmake34
-rw-r--r--cmake/cpack_rpm.cmake3
-rw-r--r--cmake/install_macros.cmake23
-rw-r--r--cmake/plugin.cmake4
4 files changed, 46 insertions, 18 deletions
diff --git a/cmake/CPackRPM.cmake b/cmake/CPackRPM.cmake
index 3b57decc5bb..326013f06b3 100644
--- a/cmake/CPackRPM.cmake
+++ b/cmake/CPackRPM.cmake
@@ -2,6 +2,11 @@
# Wrapper for CPackRPM.cmake
#
+#
+# Support for per-component LICENSE and VENDOR
+#
+# per component values, if present, are copied into global CPACK_RPM_PACKAGE_xxx
+#
macro(set_from_component WHAT)
set(orig_CPACK_RPM_PACKAGE_${WHAT} ${CPACK_RPM_PACKAGE_${WHAT}})
if(CPACK_RPM_${CPACK_RPM_PACKAGE_COMPONENT}_PACKAGE_${WHAT})
@@ -15,6 +20,33 @@ endmacro()
set_from_component(LICENSE)
set_from_component(VENDOR)
+#
+# Support for the %posttrans scriptlet
+#
+# the scriptlet, if present, is appended (together with the %posttrans tag)
+# to the pre-uninstall scriptlet
+#
+set(base_time "PRE")
+set(base_type "UNINSTALL")
+set(base_var CPACK_RPM_${CPACK_RPM_PACKAGE_COMPONENT}_${base_time}_${base_type}_SCRIPT_FILE)
+set(acc)
+
+macro(read_one_file time_ type_ tag_)
+ set(var CPACK_RPM_${CPACK_RPM_PACKAGE_COMPONENT}_${time_}_${type_}_SCRIPT_FILE)
+ if (${var})
+ file(READ ${${var}} content)
+ set(acc "${tag_}\n${content}\n\n${acc}")
+ endif()
+endmacro()
+
+read_one_file("POST" "TRANS" "%posttrans")
+if (acc)
+ set(orig_${base_var} ${${base_var}})
+ read_one_file(${base_time} ${base_type} "")
+ set(${base_var} ${CPACK_TOPLEVEL_DIRECTORY}/SPECS/${CPACK_RPM_PACKAGE_COMPONENT}_${base_time}_${base_type}.scriptlet)
+ file(WRITE ${${base_var}} "${acc}")
+endif()
+
# load the original CPackRPM.cmake
set(orig_CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH})
unset(CMAKE_MODULE_PATH)
@@ -23,10 +55,10 @@ set(CMAKE_MODULE_PATH ${orig_CMAKE_MODULE_PATH})
restore(LICENSE)
restore(VENDOR)
+set(${base_var} ${orig_${base_var}})
# per-component cleanup
foreach(_RPM_SPEC_HEADER URL REQUIRES SUGGESTS PROVIDES OBSOLETES PREFIX CONFLICTS AUTOPROV AUTOREQ AUTOREQPROV)
unset(TMP_RPM_${_RPM_SPEC_HEADER})
unset(CPACK_RPM_PACKAGE_${_RPM_SPEC_HEADER}_TMP)
endforeach()
-
diff --git a/cmake/cpack_rpm.cmake b/cmake/cpack_rpm.cmake
index e27206fc3b4..95fd8137c2e 100644
--- a/cmake/cpack_rpm.cmake
+++ b/cmake/cpack_rpm.cmake
@@ -81,6 +81,8 @@ SET(CPACK_RPM_SPEC_MORE_DEFINE "
%define _bindir ${INSTALL_BINDIRABS}
%define _sbindir ${INSTALL_SBINDIRABS}
%define _sysconfdir ${INSTALL_SYSCONFDIR}
+%define restart_flag_dir %{_localstatedir}/lib/rpm-state/mariadb
+%define restart_flag %{restart_flag_dir}/need-restart
")
# this creative hack is described here: http://www.cmake.org/pipermail/cmake/2012-January/048416.html
@@ -174,6 +176,7 @@ SET(CPACK_RPM_server_PRE_INSTALL_SCRIPT_FILE ${CMAKE_SOURCE_DIR}/support-files/r
SET(CPACK_RPM_server_PRE_UNINSTALL_SCRIPT_FILE ${CMAKE_SOURCE_DIR}/support-files/rpm/server-preun.sh)
SET(CPACK_RPM_server_POST_INSTALL_SCRIPT_FILE ${CMAKE_SOURCE_DIR}/support-files/rpm/server-postin.sh)
SET(CPACK_RPM_server_POST_UNINSTALL_SCRIPT_FILE ${CMAKE_SOURCE_DIR}/support-files/rpm/server-postun.sh)
+SET(CPACK_RPM_server_POST_TRANS_SCRIPT_FILE ${CMAKE_SOURCE_DIR}/support-files/rpm/server-posttrans.sh)
SET(CPACK_RPM_shared_POST_INSTALL_SCRIPT_FILE ${CMAKE_SOURCE_DIR}/support-files/rpm/shared-post.sh)
SET(CPACK_RPM_shared_POST_UNINSTALL_SCRIPT_FILE ${CMAKE_SOURCE_DIR}/support-files/rpm/shared-post.sh)
SET(CPACK_RPM_compat_POST_INSTALL_SCRIPT_FILE ${CMAKE_SOURCE_DIR}/support-files/rpm/shared-post.sh)
diff --git a/cmake/install_macros.cmake b/cmake/install_macros.cmake
index 71657e32308..da57078cfbf 100644
--- a/cmake/install_macros.cmake
+++ b/cmake/install_macros.cmake
@@ -33,26 +33,17 @@ FUNCTION (INSTALL_DEBUG_SYMBOLS)
SET(targets ${ARG_UNPARSED_ARGUMENTS})
FOREACH(target ${targets})
GET_TARGET_PROPERTY(target_type ${target} TYPE)
-
+ IF(target_type MATCHES "STATIC")
+ RETURN()
+ ENDIF()
set(comp "")
-
- IF(target MATCHES "mysqld" OR type MATCHES "MODULE")
- #MESSAGE("PDB: ${targets}")
+
+ IF((target STREQUAL "mysqld"))
SET(comp Server)
ENDIF()
-
- IF(NOT comp MATCHES Server)
- IF(ARG_COMPONENT MATCHES Development
- OR ARG_COMPONENT MATCHES SharedLibraries
- OR ARG_COMPONENT MATCHES Embedded)
- SET(comp Debuginfo)
- ENDIF()
- ENDIF()
- IF(NOT comp)
- SET(comp Debuginfo_archive_only) # not in MSI
- ENDIF()
- IF(NOT target_type MATCHES "STATIC")
+ INSTALL(FILES $<TARGET_PDB_FILE:${target}> DESTINATION symbols COMPONENT Debuginfo)
+ IF(comp)
INSTALL(FILES $<TARGET_PDB_FILE:${target}> DESTINATION ${ARG_INSTALL_LOCATION} COMPONENT ${comp})
ENDIF()
ENDFOREACH()
diff --git a/cmake/plugin.cmake b/cmake/plugin.cmake
index 31291d263f9..5a5fcd616fc 100644
--- a/cmake/plugin.cmake
+++ b/cmake/plugin.cmake
@@ -238,11 +238,13 @@ MACRO(MYSQL_ADD_PLUGIN)
SET(CPACK_RPM_${ARG_COMPONENT}_USER_FILELIST ${ignored} PARENT_SCOPE)
IF(NOT ARG_CLIENT AND UNIX)
IF (NOT ARG_CONFIG)
- SET(ARG_CONFIG "${CMAKE_CURRENT_BINARY_DIR}/${target}.cnf")
+ SET(ARG_CONFIG "${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/${target}.cnf")
FILE(WRITE ${ARG_CONFIG} "[mariadb]\nplugin-load-add=${ARG_MODULE_OUTPUT_NAME}.so\n")
ENDIF()
INSTALL(FILES ${ARG_CONFIG} COMPONENT ${ARG_COMPONENT} DESTINATION ${INSTALL_SYSCONF2DIR})
SET(CPACK_RPM_${ARG_COMPONENT}_USER_FILELIST ${ignored} "%config(noreplace) ${INSTALL_SYSCONF2DIR}/*" PARENT_SCOPE)
+ SET(CPACK_RPM_${ARG_COMPONENT}_POST_INSTALL_SCRIPT_FILE ${CMAKE_SOURCE_DIR}/support-files/rpm/plugin-postin.sh PARENT_SCOPE)
+ SET(CPACK_RPM_${ARG_COMPONENT}_POST_TRANS_SCRIPT_FILE ${CMAKE_SOURCE_DIR}/support-files/rpm/server-posttrans.sh PARENT_SCOPE)
ENDIF()
ENDIF()
ELSE()