configuration_options - mariadb-corporation/mariadb-connector-c GitHub Wiki
Configuration settings
Connector/C specifies its build process with platform-independent CMake listfiles included in each directory of a source tree with the name CMakeLists.txt
.
Configuration settings may be specified by passing the -D
option to CMake command line interpreter.
Do not build Connector/C from root of the source tree: Either create a subdirectory "build" inside the source tree or create a subdirectory outside of the source tree.
Example:
cmake ../connector_c -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local
Reconfiguration
In case Connector/C was already configured, the CMakeCache.txt file needs to be removed first. In several cases, e.g. when cross compiling CMakeFiles subfolders need to be removed too.
Generator options
If you want to use a different generator, e.g. for nmake on Windows, you need to specify the generator with the -G
option. cmake --help
lists the available generators for the used platform.
CMake-related configuration settings
Option | Description |
---|---|
CMAKE_BUILD_TYPE | Build type: Release, RelWithDebInfo or Debug |
CMAKE_INSTALL_PREFIX | Installation base directory. This option is also used by mariadb_config . |
CMAKE_C_FLAGS | Flags for C-Compiler |
TLS/SSL options
Option | Default | Description |
---|---|---|
WITH_OPENSSL | ON | Possible values are ON or OFF. Not supported anymore since Connector/C 3.0 |
WITH_SSL | SCHANNEL (windows), otherwise OPENSSL | Specifies type of TLS/SSL library. E.g. GNUTLS, OPENSSL or SCHANNEL (Windows only). OFF disables TLS/SSL functionality in MariaDB Connector/C < 3.4. |
Non-blocking client library options
Option | Default | Description |
---|---|---|
WITH_BOOST_CONTEXT | OFF | Use boost::context instead of ucontext for the non-blocking client API. Can be used to build the non-blocking API on platforms that do not have ucontext . Note that on x86_64 (aka amd64), i386, and aarch64 (aka arm64), a native implementation is always used over ucontext or boost::context . (Added in 3.3.12) |
Client plugins
Client plugins can be configured as dynamic plugins (DYNAMIC) or built-in plugins (STATIC) by specifying the plugin name followed by suffix _PLUGIN_TYPE
as key, and DYNAMIC
or STATIC
as value.
E.g. for building dialog plugin as a built-in plugin, for versions < Connector/C 3.0.4
cmake .. -D{PLUGIN_NAME}_PLUGIN_TYPE=[STATIC|DYNAMIC|OFF]
Beginning with C/C 3.0.4
cmake .. -DCLIENT_PLUGIN_{PLUGIN_NAME}=[STATIC|DYNAMIC|OFF]
MariaDB Connector/C supports the following plugins:
Plugin | Type | Default | Description |
---|---|---|---|
SOCKET | IO | static | plugin for client server communication via unix socket (Posix platforms only) |
SHMEM | IO | static | plugin for client server communication via shared memory (Windows only) |
NPIPE | IO | static | plugin for client server communication via named pipe (Windows only) |
DIALOG | Authentication | dynamic | Authentication for user input, e.g. for PAM authentication |
OLDPASSWORD | Authentication | static | Pre. 4.1 authentication (deprecated) |
NATIVE | Authentication | static | Default authentication |
CLEARTEXT | Authentication | dynamic | Sends password without hashing or encryption |
AUTH_GSSAPI_CLIENT | Authentication | dynamic | Kerberos/GSSAPI authentication plugin |
SHA256_PASSWORD | Authentication | dynamic | SHA256 password authentication plugin |
CACHING_SHA2_PASSWORD | Authentication | dynamic | SHA256 password authentication with server side caching |
PARSEC | Authentication | dynamic | Parsec authentication (added in version 3.4.1) |
CLIENT_ED25519 | Authentication | dynamic | ED25519 user authentication |
ZLLIB | Compression | static | ZLIB compression (added in version 3.3.0) |
ZSTD | Compression | static | ZStandard compression (added in version 3.3.0) |