summaryrefslogtreecommitdiffstats
path: root/cmake/modules/FindMySqlClient.cmake
diff options
context:
space:
mode:
Diffstat (limited to 'cmake/modules/FindMySqlClient.cmake')
-rw-r--r--cmake/modules/FindMySqlClient.cmake69
1 files changed, 69 insertions, 0 deletions
diff --git a/cmake/modules/FindMySqlClient.cmake b/cmake/modules/FindMySqlClient.cmake
new file mode 100644
index 0000000..ceccea3
--- /dev/null
+++ b/cmake/modules/FindMySqlClient.cmake
@@ -0,0 +1,69 @@
1#.rst:
2# FindMySqlClient
3# ---------------
4# Finds the MySqlClient library
5#
6# This will will define the following variables::
7#
8# MYSQLCLIENT_FOUND - system has MySqlClient
9# MYSQLCLIENT_INCLUDE_DIRS - the MySqlClient include directory
10# MYSQLCLIENT_LIBRARIES - the MySqlClient libraries
11# MYSQLCLIENT_DEFINITIONS - the MySqlClient compile definitions
12#
13# and the following imported targets::
14#
15# MySqlClient::MySqlClient - The MySqlClient 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(MYSQLCLIENT_INCLUDE_DIR mysql/mysql_time.h)
25find_library(MYSQLCLIENT_LIBRARY_RELEASE NAMES mysqlclient libmysql
26 PATH_SUFFIXES mysql
27 ${EXTRA_FIND_ARGS})
28find_library(MYSQLCLIENT_LIBRARY_DEBUG NAMES mysqlclient libmysql
29 PATH_SUFFIXES mysql
30 ${EXTRA_FIND_ARGS})
31
32if(MYSQLCLIENT_INCLUDE_DIR AND EXISTS "${MYSQLCLIENT_INCLUDE_DIR}/mysql/mysql_version.h")
33 file(STRINGS "${MYSQLCLIENT_INCLUDE_DIR}/mysql/mysql_version.h" mysql_version_str REGEX "^#define[\t ]+LIBMYSQL_VERSION[\t ]+\".*\".*")
34 string(REGEX REPLACE "^#define[\t ]+LIBMYSQL_VERSION[\t ]+\"([^\"]+)\".*" "\\1" MYSQLCLIENT_VERSION_STRING "${mysql_version_str}")
35 unset(mysql_version_str)
36endif()
37
38include(SelectLibraryConfigurations)
39select_library_configurations(MYSQLCLIENT)
40
41include(FindPackageHandleStandardArgs)
42find_package_handle_standard_args(MySqlClient
43 REQUIRED_VARS MYSQLCLIENT_LIBRARY MYSQLCLIENT_INCLUDE_DIR
44 VERSION_VAR MYSQLCLIENT_VERSION_STRING)
45
46if(MYSQLCLIENT_FOUND)
47 set(MYSQLCLIENT_LIBRARIES ${MYSQLCLIENT_LIBRARY})
48 set(MYSQLCLIENT_INCLUDE_DIRS ${MYSQLCLIENT_INCLUDE_DIR})
49 set(MYSQLCLIENT_DEFINITIONS -DHAVE_MYSQL=1)
50
51 if(NOT TARGET MySqlClient::MySqlClient)
52 add_library(MySqlClient::MySqlClient UNKNOWN IMPORTED)
53 if(MYSQLCLIENT_LIBRARY_RELEASE)
54 set_target_properties(MySqlClient::MySqlClient PROPERTIES
55 IMPORTED_CONFIGURATIONS RELEASE
56 IMPORTED_LOCATION "${MYSQLCLIENT_LIBRARY_RELEASE}")
57 endif()
58 if(MYSQLCLIENT_LIBRARY_DEBUG)
59 set_target_properties(MySqlClient::MySqlClient PROPERTIES
60 IMPORTED_CONFIGURATIONS DEBUG
61 IMPORTED_LOCATION "${MYSQLCLIENT_LIBRARY_DEBUG}")
62 endif()
63 set_target_properties(MySqlClient::MySqlClient PROPERTIES
64 INTERFACE_INCLUDE_DIRECTORIES "${MYSQLCLIENT_INCLUDE_DIR}"
65 INTERFACE_COMPILE_DEFINITIONS HAVE_MYSQL=1)
66 endif()
67endif()
68
69mark_as_advanced(MYSQLCLIENT_INCLUDE_DIR MYSQLCLIENT_LIBRARY)