diff options
author | Vladislav Vaintroub <wlad@mariadb.com> | 2019-05-26 12:54:46 +0200 |
---|---|---|
committer | Sergei Krivonos <sergei.krivonos@mariadb.com> | 2021-11-09 16:57:27 +0200 |
commit | 7acf31783c93b54e04d42c9ecec7c7426f5ca31f (patch) | |
tree | 07951177297c2c11ad2ea0549e179c02437f1cf6 | |
parent | f7c6c02a06149aa4f41dd01173f2020a0756f8db (diff) | |
download | mariadb-git-7acf31783c93b54e04d42c9ecec7c7426f5ca31f.tar.gz |
Add new option NOT_EMBEDDED, for plugins
Means, plugin will not be available in embedded, even if compiled-in
-rw-r--r-- | CMakeLists.txt | 2 | ||||
-rw-r--r-- | cmake/plugin.cmake | 22 | ||||
-rw-r--r-- | libmysqld/CMakeLists.txt | 4 |
3 files changed, 20 insertions, 8 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index f81ab458e6d..4153b73b572 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -402,7 +402,7 @@ IF(WITH_UNIT_TESTS) ENDIF() ENDIF() -SET (MYSQLD_STATIC_PLUGIN_LIBS "" CACHE INTERNAL "") +UNSET (MYSQLD_STATIC_PLUGIN_LIBS CACHE) INCLUDE(mariadb_connector_c) # this does ADD_SUBDIRECTORY(libmariadb) diff --git a/cmake/plugin.cmake b/cmake/plugin.cmake index e7e9d2a3642..e63d7ae7b00 100644 --- a/cmake/plugin.cmake +++ b/cmake/plugin.cmake @@ -25,12 +25,13 @@ INCLUDE(CMakeParseArguments) # [MODULE_OUTPUT_NAME module_name] # [STATIC_OUTPUT_NAME static_name] # [RECOMPILE_FOR_EMBEDDED] +# [NOT_EMBEDDED] # [LINK_LIBRARIES lib1...libN] # [DEPENDS target1...targetN] MACRO(MYSQL_ADD_PLUGIN) CMAKE_PARSE_ARGUMENTS(ARG - "STORAGE_ENGINE;STATIC_ONLY;MODULE_ONLY;MANDATORY;DEFAULT;DISABLED;RECOMPILE_FOR_EMBEDDED;CLIENT" + "STORAGE_ENGINE;STATIC_ONLY;MODULE_ONLY;MANDATORY;DEFAULT;DISABLED;NOT_EMBEDDED;RECOMPILE_FOR_EMBEDDED;CLIENT" "MODULE_OUTPUT_NAME;STATIC_OUTPUT_NAME;COMPONENT;CONFIG" "LINK_LIBRARIES;DEPENDS" ${ARGN} @@ -140,7 +141,7 @@ MACRO(MYSQL_ADD_PLUGIN) DTRACE_INSTRUMENT(${target}) ADD_DEPENDENCIES(${target} GenError ${ARG_DEPENDS}) RESTRICT_SYMBOL_EXPORTS(${target}) - IF(WITH_EMBEDDED_SERVER) + IF(WITH_EMBEDDED_SERVER AND (NOT ARG_NOT_EMBEDDED)) # Embedded library should contain PIC code and be linkable # to shared libraries (on systems that need PIC) IF(ARG_RECOMPILE_FOR_EMBEDDED OR NOT _SKIP_PIC) @@ -165,19 +166,30 @@ MACRO(MYSQL_ADD_PLUGIN) TARGET_LINK_LIBRARIES (${target} ${ARG_LINK_LIBRARIES}) ENDIF() + SET(${with_var} ON CACHE INTERNAL "Link ${plugin} statically to the server" FORCE) + # Update mysqld dependencies SET (MYSQLD_STATIC_PLUGIN_LIBS ${MYSQLD_STATIC_PLUGIN_LIBS} ${target} ${ARG_LINK_LIBRARIES} CACHE INTERNAL "" FORCE) - SET(${with_var} ON CACHE INTERNAL "Link ${plugin} statically to the server" FORCE) + IF(WITH_EMBEDDED_SERVER AND (NOT ARG_NOT_EMBEDDED)) + SET (EMBEDDED_PLUGIN_LIBS ${EMBEDDED_PLUGIN_LIBS} + ${target} ${ARG_LINK_LIBRARIES} CACHE INTERNAL "" FORCE) + ENDIF() + + IF(ARG_NOT_EMBEDDED) + SET(builtin_entry "#ifndef EMBEDDED_LIBRARY\n builtin_maria_${target}_plugin,\n#endif") + ELSE() + SET(builtin_entry " builtin_maria_${target}_plugin,") + ENDIF() IF(ARG_MANDATORY) SET (mysql_mandatory_plugins - "${mysql_mandatory_plugins} builtin_maria_${target}_plugin,") + "${mysql_mandatory_plugins}${builtin_entry}\n") SET (mysql_mandatory_plugins ${mysql_mandatory_plugins} PARENT_SCOPE) ELSE() SET (mysql_optional_plugins - "${mysql_optional_plugins} builtin_maria_${target}_plugin,") + "${mysql_optional_plugins}${builtin_entry}\n") SET (mysql_optional_plugins ${mysql_optional_plugins} PARENT_SCOPE) ENDIF() ELSEIF(PLUGIN_${plugin} MATCHES "(DYNAMIC|AUTO|YES)" diff --git a/libmysqld/CMakeLists.txt b/libmysqld/CMakeLists.txt index 0266569eff6..e3d170fa47d 100644 --- a/libmysqld/CMakeLists.txt +++ b/libmysqld/CMakeLists.txt @@ -55,7 +55,7 @@ SET(SQL_EMBEDDED_SOURCES emb_qcache.cc libmysqld.c lib_sql.cc ../sql/item_subselect.cc ../sql/item_sum.cc ../sql/item_timefunc.cc ../sql/item_xmlfunc.cc ../sql/item_jsonfunc.cc ../sql/key.cc ../sql/lock.cc ../sql/log.cc - ../sql/log_event.cc ../sql/mf_iocache.cc ../sql/my_decimal.cc + ../sql/log_event.cc ../sql/mf_iocache.cc ../sql/my_decimal.cc ../sql/net_serv.cc ../sql/opt_range.cc ../sql/opt_sum.cc ../sql/parse_file.cc ../sql/procedure.cc ../sql/protocol.cc ../sql/records.cc ../sql/repl_failsafe.cc ../sql/rpl_filter.cc @@ -154,7 +154,7 @@ SET(LIBS dbug strings mysys mysys_ssl pcre vio ${ZLIB_LIBRARY} ${SSL_LIBRARIES} ${LIBWRAP} ${LIBCRYPT} ${CMAKE_DL_LIBS} - ${MYSQLD_STATIC_PLUGIN_LIBS} + ${EMBEDDED_PLUGIN_LIBS} sql_embedded ) |