declare plugin structures using their correct type.
Fixes errors like
./libmariadb/libmariadb/ma_client_plugin.c:86:39: error: type of ‘pvio_socket_client_plugin’ does not match original declaration [-Werror=lto-type-mismatch]
./libmariadb/plugins/pvio/pvio_socket.c:141:21: note: type ‘struct MARIADB_PVIO_PLUGIN’ should match type ‘struct st_mysql_client_plugin’
Approved by: Georg Richter <georg@mariadb.com>
With normal client, statically linked plugin with be used
The DLL is for the obscure in-server client, which we never got rid off.
That client is used with mariabackup, replication, and some storage engines,
e.g connect and federated.
mysql_old_password is disabled by default (setting DISABLED YES),
but can be used if the plugin was added to the list of restricted
authentication plugins (via mysql_optionsv using option
MARIADB_OPT_RESTRICTED_AUTH).
With normal client, statically linked plugin with be used
The DLL is for the obscure in-server client, which we never got rid off.
That client is used with mariabackup, replication, and some storage engines,
e.g connect and federated.
Plugin configuration happens now in CMakeLists.txt files in corresponding plugin directories.
plugins.cmake now contains REGISTER_PLUGIN_FUNCTION which accepts the following parameters:
- TARGET: the name of the plugin (dynamic plugins will be named ${TARGET}.so (or .dll)
- SOURCES: source files
- LIBRARIES: additional libraries for linking
- INCLUDES: include directories
- CONFIGURATIONS: possible plugin configurations: valid arguments are DYNAMIC, STATIC, OFF
- DEFAULT: default configuration (see CONFIGURATIONS)
- COMPILE_OPTIONS: compiler flags
The default plugin configuration can be specified via cmake parameter -DCLIENT_PLUGIN_${TARGET}=[DYNAMIC|STATIC|OFF]
Fixed compiler warnings in gssapi_client.c
Since trace_example, aurora and replication plugins have experimental status, they are no longer build by default (=OFF).
On Windows the sha256 plugin doesn't need any external TLS/Crypto libraries, it uses windows cryto library. On non Windws platforms the plugin requires OpenSSL (GnuTLS doesn't support OAEP v2.0 padding yet)
* make is usable as a CMake sub-project
* put options in a separate namespace
* but use parent project values when specified
* always specify COMPONENT when INSTALLing
* don't use PROJECT_SOURCE_DIR/PROJECT_BINARY_DIR
Also
* fix out-of-source builds (don't generate files
in the CMAKE_SOURCE_DIR, always do it in CMAKE_BINARY_DIR)
* make subsequence cmake runs less verbose, use MESSAGE1
to avoid repeating messages that didn't change
fixed type mismatch warnings in client_plugin.c
fixed prototypes and const/non const warnings in windows pvio
removed debug from msi package
added plugin dependencies for msi package