Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -264,6 +264,7 @@ support-files/mariadb-extra.socket
support-files/mariadb@.service
support-files/mariadb@.socket
support-files/mariadb-extra@.socket
support-files/mariadb-plugin-config.cmake
support-files/mini-benchmark
support-files/my-huge.cnf
support-files/my-innodb-heavy-4G.cnf
Expand Down
15 changes: 13 additions & 2 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# Copyright (c) 2006, 2017, Oracle and/or its affiliates.
# Copyright (c) 2008, 2022, MariaDB Corporation.
# Copyright (c) 2008, 2026, MariaDB Corporation.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
Expand Down Expand Up @@ -493,7 +493,18 @@ SET(PYTHON_SHEBANG "/usr/bin/env python3" CACHE STRING "python shebang")
MARK_AS_ADVANCED(PYTHON_SHEBANG)

# Add storage engines and plugins.
CONFIGURE_PLUGINS()
IF(NOT WITHOUT_SERVER)
FILE(GLOB dirs_storage ${CMAKE_SOURCE_DIR}/storage/*)
ENDIF()

FILE(GLOB dirs_plugin ${CMAKE_SOURCE_DIR}/plugin/*)
FOREACH(dir ${dirs_storage} ${dirs_plugin})
IF (EXISTS ${dir}/CMakeLists.txt)
ADD_SUBDIRECTORY(${dir})
ENDIF()
ENDFOREACH()
Comment thread
vuvova marked this conversation as resolved.

VERIFY_PLUGINS()

ADD_SUBDIRECTORY(include)
ADD_SUBDIRECTORY(dbug)
Expand Down
33 changes: 0 additions & 33 deletions cmake/install_macros.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -300,36 +300,3 @@ ENDFUNCTION()
# For Makefile generators we default Debug build directory to ${buildroot}/../debug.
GET_FILENAME_COMPONENT(BINARY_PARENTDIR ${CMAKE_BINARY_DIR} PATH)
SET(DEBUGBUILDDIR "${BINARY_PARENTDIR}/debug" CACHE INTERNAL "Directory of debug build")

FUNCTION(INSTALL_MYSQL_TEST from to)
IF(INSTALL_MYSQLTESTDIR)
IF(NOT WITH_WSREP)
SET(EXCL_GALERA "(suite/(galera|wsrep|sys_vars/[rt]/(sysvars_)?wsrep).*|std_data/(galera|wsrep).*)")
ELSE()
SET(EXCL_GALERA "^DOES_NOT_EXIST$")
ENDIF()
INSTALL(
DIRECTORY ${from}
DESTINATION "${INSTALL_MYSQLTESTDIR}/${to}"
USE_SOURCE_PERMISSIONS
COMPONENT Test
PATTERN "var" EXCLUDE
PATTERN "lib/My/SafeProcess" EXCLUDE
PATTERN "lib/t*" EXCLUDE
PATTERN "CPack" EXCLUDE
PATTERN "CMake*" EXCLUDE
PATTERN "cmake_install.cmake" EXCLUDE
PATTERN "mtr.out*" EXCLUDE
PATTERN ".cvsignore" EXCLUDE
PATTERN "*.am" EXCLUDE
PATTERN "*.in" EXCLUDE
PATTERN "Makefile" EXCLUDE
PATTERN "*.vcxproj" EXCLUDE
PATTERN "*.vcxproj.filters" EXCLUDE
PATTERN "*.vcxproj.user" EXCLUDE
PATTERN "CTest*" EXCLUDE
PATTERN "*~" EXCLUDE
REGEX "${EXCL_GALERA}" EXCLUDE
)
ENDIF()
ENDFUNCTION()
116 changes: 81 additions & 35 deletions cmake/plugin.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,46 @@
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA

IF(NOT EXTERNAL_PLUGIN)
STRING(CONCAT PARENT_SCOPE PARENT_SCOPE) # cannot use SET here
ENDIF()
Comment thread
vuvova marked this conversation as resolved.

FUNCTION(INSTALL_MYSQL_TEST from to)
IF(INSTALL_MYSQLTESTDIR)
IF(NOT WITH_WSREP)
SET(EXCL_GALERA "(suite/(galera|wsrep|sys_vars/[rt]/(sysvars_)?wsrep).*|std_data/(galera|wsrep).*)")
ELSE()
SET(EXCL_GALERA "^DOES_NOT_EXIST$")
ENDIF()
INSTALL(
DIRECTORY ${from}
DESTINATION "${INSTALL_MYSQLTESTDIR}/${to}"
USE_SOURCE_PERMISSIONS
COMPONENT Test
PATTERN "var" EXCLUDE
PATTERN "lib/My/SafeProcess" EXCLUDE
PATTERN "lib/t*" EXCLUDE
PATTERN "CPack" EXCLUDE
PATTERN "CMake*" EXCLUDE
PATTERN "cmake_install.cmake" EXCLUDE
PATTERN "mtr.out*" EXCLUDE
PATTERN ".cvsignore" EXCLUDE
PATTERN "*.am" EXCLUDE
PATTERN "*.in" EXCLUDE
PATTERN "Makefile" EXCLUDE
PATTERN "*.vcxproj" EXCLUDE
PATTERN "*.vcxproj.filters" EXCLUDE
PATTERN "*.vcxproj.user" EXCLUDE
PATTERN "CTest*" EXCLUDE
PATTERN "*~" EXCLUDE
REGEX "${EXCL_GALERA}" EXCLUDE
)
ENDIF()
ENDFUNCTION()

INCLUDE(CMakeParseArguments)

# MYSQL_ADD_PLUGIN(plugin_name source1...sourceN
# MARIADB_ADD_PLUGIN(plugin_name source1...sourceN
# [STORAGE_ENGINE]
# [STATIC_ONLY|MODULE_ONLY]
# [MANDATORY|DEFAULT]
Expand All @@ -32,10 +68,10 @@ INCLUDE(CMakeParseArguments)
# [LINK_LIBRARIES lib1...libN]
# [DEPENDS target1...targetN]

MACRO(MYSQL_ADD_PLUGIN)
MACRO(MARIADB_ADD_PLUGIN)
CMAKE_PARSE_ARGUMENTS(ARG
"STORAGE_ENGINE;STATIC_ONLY;MODULE_ONLY;MANDATORY;DEFAULT;DISABLED;NOT_EMBEDDED;RECOMPILE_FOR_EMBEDDED;CLIENT"
"MODULE_OUTPUT_NAME;STATIC_OUTPUT_NAME;COMPONENT;CONFIG;VERSION"
"MODULE_OUTPUT_NAME;STATIC_OUTPUT_NAME;COMPONENT;CONFIG;VERSION;AUTHOR;DESCRIPTION"
"LINK_LIBRARIES;DEPENDS"
${ARGN}
)
Expand Down Expand Up @@ -108,6 +144,10 @@ MACRO(MYSQL_ADD_PLUGIN)
MESSAGE(FATAL_ERROR "Invalid value for PLUGIN_${plugin}")
ENDIF()

IF(EXTERNAL_PLUGIN)
EXTERNAL_PLUGIN_PRE()
ENDIF()

# Validate that the requested build mode is compatible with what the
# plugin actually supports. STATIC_ONLY plugins cannot be built as
# dynamic modules, and MODULE_ONLY plugins cannot be linked statically.
Expand All @@ -130,10 +170,17 @@ MACRO(MYSQL_ADD_PLUGIN)
SET(ARG_DEPENDS)
ENDIF()

SET(definitions ";PLUGIN_NAME=\"${target}\";PLUGIN_LICENSE=PLUGIN_LICENSE_GPL")
IF(ARG_VERSION)
SET(version_string ";PLUGIN_${plugin}_VERSION=\"${ARG_VERSION}\"")
SET(definitions "${definitions};PLUGIN_VERSION=\"${ARG_VERSION}\";PLUGIN_HEX_VERSION=${V_MAJOR}*256+${V_MINOR}")
ENDIF()
IF(ARG_AUTHOR)
SET(definitions "${definitions};PLUGIN_AUTHOR=\"${ARG_AUTHOR}\"")
ENDIF()

IF(ARG_DESCRIPTION)
SET(definitions "${definitions};PLUGIN_DESCRIPTION=\"${ARG_DESCRIPTION}\"")
ENDIF()

IF(NOT ARG_MODULE_OUTPUT_NAME)
IF(ARG_STORAGE_ENGINE)
SET(ARG_MODULE_OUTPUT_NAME "ha_${target}")
Expand Down Expand Up @@ -169,7 +216,7 @@ MACRO(MYSQL_ADD_PLUGIN)
DTRACE_INSTRUMENT(${target}_embedded)
IF(ARG_RECOMPILE_FOR_EMBEDDED)
SET_TARGET_PROPERTIES(${target}_embedded
PROPERTIES COMPILE_DEFINITIONS "EMBEDDED_LIBRARY${version_string}")
PROPERTIES COMPILE_DEFINITIONS "EMBEDDED_LIBRARY${definitions}")
ENDIF()
ADD_DEPENDENCIES(${target}_embedded GenError ${ARG_DEPENDS})
IF(ARG_LINK_LIBRARIES)
Expand Down Expand Up @@ -207,11 +254,11 @@ MACRO(MYSQL_ADD_PLUGIN)
IF(ARG_MANDATORY)
SET (mysql_mandatory_plugins
"${mysql_mandatory_plugins}${builtin_entry}\n")
SET (mysql_mandatory_plugins ${mysql_mandatory_plugins} PARENT_SCOPE)
SET (mysql_mandatory_plugins ${mysql_mandatory_plugins} ${PARENT_SCOPE})
ELSE()
SET (mysql_optional_plugins
"${mysql_optional_plugins}${builtin_entry}\n")
SET (mysql_optional_plugins ${mysql_optional_plugins} PARENT_SCOPE)
SET (mysql_optional_plugins ${mysql_optional_plugins} ${PARENT_SCOPE})
ENDIF()
ELSEIF(PLUGIN_${plugin} MATCHES "(DYNAMIC|AUTO|YES)"
AND NOT ARG_STATIC_ONLY AND NOT WITHOUT_DYNAMIC_PLUGINS)
Expand All @@ -223,7 +270,7 @@ MACRO(MYSQL_ADD_PLUGIN)
SET_TARGET_PROPERTIES (${target} PROPERTIES PREFIX "")
IF (NOT ARG_CLIENT)
SET_TARGET_PROPERTIES (${target} PROPERTIES
COMPILE_DEFINITIONS "MYSQL_DYNAMIC_PLUGIN${version_string}")
COMPILE_DEFINITIONS "MYSQL_DYNAMIC_PLUGIN${definitions}")
ENDIF()

TARGET_LINK_LIBRARIES (${target} mysqlservices ${ARG_LINK_LIBRARIES})
Expand Down Expand Up @@ -263,34 +310,39 @@ MACRO(MYSQL_ADD_PLUGIN)
IF(CPACK_COMPONENTS_ALL AND
NOT CPACK_COMPONENTS_ALL MATCHES ${ARG_COMPONENT}
AND INSTALL_SYSCONF2DIR)
IF (ARG_STORAGE_ENGINE)
STRING(REPLACE "-" "_" ver ${SERVER_VERSION})
SET(ver " = ${ver}-%{release}")
IF (ARG_STORAGE_ENGINE OR ARG_RECOMPILE_FOR_EMBEDDED)
IF(RPM)
STRING(REPLACE "-" "_" ver ${SERVER_VERSION})
SET(ver " = ${ver}-%{release}")
ELSE() # DEB
SET(ver " (= 1:${SERVER_VERSION}+maria~${DEBIAN_ABBR})")
ENDIF()
ELSE()
SET(ver "")
ENDIF()
STRING(TOUPPER ${ARG_COMPONENT} ARG_COMPONENT_UPPER)
SET(CPACK_COMPONENT_${ARG_COMPONENT_UPPER}SYMLINKS_GROUP ${ARG_COMPONENT} PARENT_SCOPE)
SET(CPACK_COMPONENT_${ARG_COMPONENT_UPPER}_GROUP ${ARG_COMPONENT} PARENT_SCOPE)
SET(CPACK_COMPONENT_${ARG_COMPONENT_UPPER}SYMLINKS_GROUP ${ARG_COMPONENT} ${PARENT_SCOPE})
SET(CPACK_COMPONENT_${ARG_COMPONENT_UPPER}_GROUP ${ARG_COMPONENT} ${PARENT_SCOPE})
SET(CPACK_COMPONENTS_ALL ${CPACK_COMPONENTS_ALL} ${ARG_COMPONENT} ${ARG_COMPONENT}Symlinks)
SET(CPACK_COMPONENTS_ALL ${CPACK_COMPONENTS_ALL} PARENT_SCOPE)
SET(CPACK_COMPONENTS_ALL ${CPACK_COMPONENTS_ALL} ${PARENT_SCOPE})

IF (NOT ARG_CLIENT)
SET(CPACK_RPM_${ARG_COMPONENT}_PACKAGE_REQUIRES "MariaDB-server${ver}" PARENT_SCOPE)
SET(CPACK_RPM_${ARG_COMPONENT}_PACKAGE_REQUIRES "MariaDB-server${ver}" ${PARENT_SCOPE})
SET(CPACK_DEBIAN_PACKAGE_DEPENDS "mariadb-server${ver}")
ENDIF()
SET(CPACK_RPM_${ARG_COMPONENT}_USER_FILELIST ${ignored} PARENT_SCOPE)
SET(CPACK_RPM_${ARG_COMPONENT}_USER_FILELIST ${ignored} ${PARENT_SCOPE})
IF (ARG_VERSION)
SET(CPACK_RPM_${ARG_COMPONENT}_PACKAGE_VERSION ${SERVER_VERSION}_${ARG_VERSION} PARENT_SCOPE)
SET(CPACK_RPM_${ARG_COMPONENT}_PACKAGE_VERSION ${SERVER_VERSION}_${ARG_VERSION} ${PARENT_SCOPE})
SET_PLUGIN_DEB_VERSION(${target} ${SERVER_VERSION}-${ARG_VERSION})
ENDIF()
IF(NOT ARG_CLIENT AND UNIX)
IF (NOT ARG_CONFIG)
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()
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)
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()
Expand Down Expand Up @@ -323,23 +375,17 @@ MACRO(MYSQL_ADD_PLUGIN)
ADD_FEATURE_INFO(${plugin} ${have_target} "Server plugin ${plugin_type}")
ENDIF()
ENDIF(NOT WITHOUT_SERVER OR ARG_CLIENT)
ENDMACRO()


# Add all CMake projects under storage and plugin
# subdirectories, configure sql_builtins.cc
MACRO(CONFIGURE_PLUGINS)
IF(NOT WITHOUT_SERVER)
FILE(GLOB dirs_storage ${CMAKE_SOURCE_DIR}/storage/*)
IF (EXTERNAL_PLUGIN)
EXTERNAL_PLUGIN_POST()
ENDIF()
ENDMACRO()

FILE(GLOB dirs_plugin ${CMAKE_SOURCE_DIR}/plugin/*)
FOREACH(dir ${dirs_storage} ${dirs_plugin})
IF (EXISTS ${dir}/CMakeLists.txt)
ADD_SUBDIRECTORY(${dir})
ENDIF()
ENDFOREACH()
MACRO(MYSQL_ADD_PLUGIN)
MARIADB_ADD_PLUGIN(${ARGV})
ENDMACRO()

# verify that all -DPLUGIN_xxx=YES plugins are being built
MACRO(VERIFY_PLUGINS)
GET_CMAKE_PROPERTY(ALL_VARS VARIABLES)
FOREACH (V ${ALL_VARS})
IF (V MATCHES "^PLUGIN_")
Expand Down
1 change: 1 addition & 0 deletions cmake/wsrep.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ IF(WITH_WSREP)
# Set the patch version
SET(WSREP_PATCH_VERSION "22")

ADD_DEFINITIONS(-DWITH_WSREP)
ADD_SUBMODULE(wsrep-lib)

# Obtain wsrep API version
Expand Down
1 change: 0 additions & 1 deletion config.h.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -543,7 +543,6 @@

#ifndef EMBEDDED_LIBRARY
#cmakedefine WSREP_INTERFACE_VERSION "@WSREP_INTERFACE_VERSION@"
#cmakedefine WITH_WSREP 1
#endif

#if !defined(__STDC_FORMAT_MACROS)
Expand Down
9 changes: 4 additions & 5 deletions debian/libmariadb-dev.install
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,7 @@ usr/include/mariadb/errmsg.h
usr/include/mariadb/ma_list.h
usr/include/mariadb/ma_pvio.h
usr/include/mariadb/ma_tls.h
usr/include/mariadb/mariadb/
usr/include/mariadb/mariadb/ma_io.h
usr/include/mariadb/mariadb
usr/include/mariadb/mariadb_com.h
usr/include/mariadb/mariadb_ctype.h
usr/include/mariadb/mariadb_dyncol.h
Expand All @@ -16,20 +15,20 @@ usr/include/mariadb/my_alloca.h
usr/include/mariadb/my_config.h
usr/include/mariadb/my_global.h
usr/include/mariadb/my_sys.h
usr/include/mariadb/mysql
usr/include/mariadb/mysql.h
usr/include/mariadb/mysql/
usr/include/mariadb/mysql/client_plugin.h
usr/include/mariadb/mysql/plugin_auth.h
usr/include/mariadb/mysql_com.h
usr/include/mariadb/mysql_version.h
usr/include/mariadb/mysqld_error.h
usr/include/mariadb/server
usr/lib/*/libmariadb.a
usr/lib/*/libmariadb.so
usr/lib/*/libmariadbclient.a
usr/lib/*/libmariadbclient.so
usr/lib/*/libmysqlservices.a
usr/lib/*/pkgconfig/libmariadb.pc
usr/share/aclocal/mysql.m4
usr/share/cmake/mariadb-plugin
usr/share/man/man1/mariadb_config.1
usr/share/man/man1/mysql_config.1
usr/share/man/man3/*.3
1 change: 0 additions & 1 deletion debian/libmariadbd-dev.install
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
usr/include/mariadb/server
usr/lib/*/libmariadbd.a
usr/lib/*/libmariadbd.so
usr/lib/*/libmysqld.a
Expand Down
1 change: 1 addition & 0 deletions include/my_global.h
Original file line number Diff line number Diff line change
Expand Up @@ -1158,6 +1158,7 @@ typedef struct { const char *dli_fname, dli_fbase; } Dl_info;
/* Things we don't need in the embedded version of MySQL */
/* TODO HF add #undef HAVE_VIO if we don't want client in embedded library */

#undef WITH_WSREP
#else
#define HAVE_REPLICATION
#define HAVE_EXTERNAL_CLIENT
Expand Down
9 changes: 0 additions & 9 deletions sql/unireg.h
Original file line number Diff line number Diff line change
Expand Up @@ -33,15 +33,6 @@
#define TEMP_PREFIX "MY"
#define LOG_PREFIX "ML"
#define PROGDIR "bin/"
#ifndef MYSQL_DATADIR
#define MYSQL_DATADIR "data/"
#endif
#ifndef SHAREDIR
#define SHAREDIR "share/"
#endif
#ifndef PLUGINDIR
#define PLUGINDIR "lib/plugin"
#endif

#define MAX_ERROR_RANGES 4 /* 1000-2000, 2000-3000, 3000-4000, 4000-5000 */
#define ERRORS_PER_RANGE 1000
Expand Down
1 change: 1 addition & 0 deletions storage/columnstore/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ add_definitions(-DBOOST_BIND_GLOBAL_PLACEHOLDERS)
IF(NOT PLUGIN_PERFSCHEMA STREQUAL NO)
add_definitions(-DHAVE_PSI_INTERFACE=)
ENDIF()
add_definitions(-DPLUGIN_COLUMNSTORE_VERSION=PLUGIN_VERSION)

# let's temporarily disable the warning, until ColumnStore is fixed
MY_CHECK_AND_SET_COMPILER_FLAG("-Wno-error=suggest-override")
Expand Down
8 changes: 7 additions & 1 deletion support-files/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# Copyright (c) 2006, 2016, Oracle and/or its affiliates.
# Copyright (c) 2012, 2022, MariaDB
# Copyright (c) 2012, 2026, MariaDB plc
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
Expand Down Expand Up @@ -256,4 +256,10 @@ IF(UNIX AND NOT WITHOUT_SERVER)
WORKING_DIRECTORY \$ENV{DESTDIR}${prefix})"
COMPONENT SupportFiles)
ENDIF(INSTALL_SYSCONFDIR)

FILE(READ ${CMAKE_SOURCE_DIR}/cmake/install_layout.cmake install_layout.cmake)
FILE(READ ${CMAKE_SOURCE_DIR}/cmake/plugin.cmake plugin.cmake)
CONFIGURE_FILE(mariadb-plugin-config.cmake.in mariadb-plugin-config.cmake @ONLY)
Comment thread
vuvova marked this conversation as resolved.
INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/mariadb-plugin-config.cmake DESTINATION ${INSTALL_SHAREDIR}/cmake/mariadb-plugin/
COMPONENT Development)
ENDIF()
Loading