summaryrefslogtreecommitdiffstats
path: root/cmake/modules/FindMariaDBClient.cmake
diff options
context:
space:
mode:
Diffstat (limited to 'cmake/modules/FindMariaDBClient.cmake')
-rw-r--r--cmake/modules/FindMariaDBClient.cmake69
1 files changed, 69 insertions, 0 deletions
diff --git a/cmake/modules/FindMariaDBClient.cmake b/cmake/modules/FindMariaDBClient.cmake
new file mode 100644
index 0000000..1e5e736
--- /dev/null
+++ b/cmake/modules/FindMariaDBClient.cmake
@@ -0,0 +1,69 @@
1#.rst:
2# FindMariaDBClient
3# ---------------
4# Finds the MariaDBClient library
5#
6# This will will define the following variables::
7#
8# MARIADBCLIENT_FOUND - system has MariaDBClient
9# MARIADBCLIENT_INCLUDE_DIRS - the MariaDBClient include directory
10# MARIADBCLIENT_LIBRARIES - the MariaDBClient libraries
11# MARIADBCLIENT_DEFINITIONS - the MariaDBClient compile definitions
12#
13# and the following imported targets::
14#
15# MariaDBClient::MariaDBClient - The MariaDBClient library
16
17# Don't find system wide installed version on Windows
18if(WIN32)
19 set(EXTRA_FIND_ARGS NO_SYSTEM_ENVIRONMENT_PATH)
20else()
21 set(EXTRA_FIND_ARGS)
22endif()
23
24find_path(MARIADBCLIENT_INCLUDE_DIR NAMES mariadb/mysql.h mariadb/server/mysql.h)
25find_library(MARIADBCLIENT_LIBRARY_RELEASE NAMES mariadbclient libmariadb
26 PATH_SUFFIXES mariadb
27 ${EXTRA_FIND_ARGS})
28find_library(MARIADBCLIENT_LIBRARY_DEBUG NAMES mariadbclient libmariadb
29 PATH_SUFFIXES mariadb
30 ${EXTRA_FIND_ARGS})
31
32if(MARIADBCLIENT_INCLUDE_DIR AND EXISTS "${MARIADBCLIENT_INCLUDE_DIR}/mariadb/mariadb_version.h")
33 file(STRINGS "${MARIADBCLIENT_INCLUDE_DIR}/mariadb/mariadb_version.h" mariadb_version_str REGEX "^#define[\t ]+MARIADB_CLIENT_VERSION_STR[\t ]+\".*\".*")
34 string(REGEX REPLACE "^#define[\t ]+MARIADB_CLIENT_VERSION_STR[\t ]+\"([^\"]+)\".*" "\\1" MARIADBCLIENT_VERSION_STRING "${mariadb_version_str}")
35 unset(mariadb_version_str)
36endif()
37
38include(SelectLibraryConfigurations)
39select_library_configurations(MARIADBCLIENT)
40
41include(FindPackageHandleStandardArgs)
42find_package_handle_standard_args(MariaDBClient
43 REQUIRED_VARS MARIADBCLIENT_LIBRARY MARIADBCLIENT_INCLUDE_DIR
44 VERSION_VAR MARIADBCLIENT_VERSION_STRING)
45
46if(MARIADBCLIENT_FOUND)
47 set(MARIADBCLIENT_LIBRARIES ${MARIADBCLIENT_LIBRARY})
48 set(MARIADBCLIENT_INCLUDE_DIRS ${MARIADBCLIENT_INCLUDE_DIR})
49 set(MARIADBCLIENT_DEFINITIONS -DHAS_MARIADB=1)
50
51 if(NOT TARGET MariaDBClient::MariaDBClient)
52 add_library(MariaDBClient::MariaDBClient UNKNOWN IMPORTED)
53 if(MARIADBCLIENT_LIBRARY_RELEASE)
54 set_target_properties(MariaDBClient::MariaDBClient PROPERTIES
55 IMPORTED_CONFIGURATIONS RELEASE
56 IMPORTED_LOCATION "${MARIADBCLIENT_LIBRARY_RELEASE}")
57 endif()
58 if(MARIADBCLIENT_LIBRARY_DEBUG)
59 set_target_properties(MariaDBClient::MariaDBClient PROPERTIES
60 IMPORTED_CONFIGURATIONS DEBUG
61 IMPORTED_LOCATION "${MARIADBCLIENT_LIBRARY_DEBUG}")
62 endif()
63 set_target_properties(MariaDBClient::MariaDBClient PROPERTIES
64 INTERFACE_INCLUDE_DIRECTORIES "${MARIADBCLIENT_INCLUDE_DIR}"
65 INTERFACE_COMPILE_DEFINITIONS HAS_MARIADB=1)
66 endif()
67endif()
68
69mark_as_advanced(MARIADBCLIENT_INCLUDE_DIR MARIADBCLIENT_LIBRARY)