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..05d3f57
--- /dev/null
+++ b/cmake/modules/FindMySqlClient.cmake
@@ -0,0 +1,69 @@
+#.rst:
+# FindMySqlClient
+# ---------------
+# Finds the MySqlClient library
+#
+# This will define the following variables::
+#
+# MYSQLCLIENT_FOUND - system has MySqlClient
+# MYSQLCLIENT_INCLUDE_DIRS - the MySqlClient include directory
+# MYSQLCLIENT_LIBRARIES - the MySqlClient libraries
+# MYSQLCLIENT_DEFINITIONS - the MySqlClient compile definitions
+#
+# and the following imported targets::
+#
+# MySqlClient::MySqlClient - The MySqlClient library
+
+# Don't find system wide installed version on Windows
+if(WIN32)
+ set(EXTRA_FIND_ARGS NO_SYSTEM_ENVIRONMENT_PATH)
+else()
+ set(EXTRA_FIND_ARGS)
+endif()
+
+find_path(MYSQLCLIENT_INCLUDE_DIR NAMES mysql/mysql.h mysql/server/mysql.h)
+find_library(MYSQLCLIENT_LIBRARY_RELEASE NAMES mysqlclient libmysql
+ PATH_SUFFIXES mysql
+ ${EXTRA_FIND_ARGS})
+find_library(MYSQLCLIENT_LIBRARY_DEBUG NAMES mysqlclient libmysql
+ PATH_SUFFIXES mysql
+ ${EXTRA_FIND_ARGS})
+
+if(MYSQLCLIENT_INCLUDE_DIR AND EXISTS "${MYSQLCLIENT_INCLUDE_DIR}/mysql/mysql_version.h")
+ file(STRINGS "${MYSQLCLIENT_INCLUDE_DIR}/mysql/mysql_version.h" mysql_version_str REGEX "^#define[\t ]+LIBMYSQL_VERSION[\t ]+\".*\".*")
+ string(REGEX REPLACE "^#define[\t ]+LIBMYSQL_VERSION[\t ]+\"([^\"]+)\".*" "\\1" MYSQLCLIENT_VERSION_STRING "${mysql_version_str}")
+ unset(mysql_version_str)
+endif()
+
+include(SelectLibraryConfigurations)
+select_library_configurations(MYSQLCLIENT)
+
+include(FindPackageHandleStandardArgs)
+find_package_handle_standard_args(MySqlClient
+ REQUIRED_VARS MYSQLCLIENT_LIBRARY MYSQLCLIENT_INCLUDE_DIR
+ VERSION_VAR MYSQLCLIENT_VERSION_STRING)
+
+if(MYSQLCLIENT_FOUND)
+ set(MYSQLCLIENT_LIBRARIES ${MYSQLCLIENT_LIBRARY})
+ set(MYSQLCLIENT_INCLUDE_DIRS ${MYSQLCLIENT_INCLUDE_DIR})
+ set(MYSQLCLIENT_DEFINITIONS -DHAS_MYSQL=1)
+
+ if(NOT TARGET MySqlClient::MySqlClient)
+ add_library(MySqlClient::MySqlClient UNKNOWN IMPORTED)
+ if(MYSQLCLIENT_LIBRARY_RELEASE)
+ set_target_properties(MySqlClient::MySqlClient PROPERTIES
+ IMPORTED_CONFIGURATIONS RELEASE
+ IMPORTED_LOCATION "${MYSQLCLIENT_LIBRARY_RELEASE}")
+ endif()
+ if(MYSQLCLIENT_LIBRARY_DEBUG)
+ set_target_properties(MySqlClient::MySqlClient PROPERTIES
+ IMPORTED_CONFIGURATIONS DEBUG
+ IMPORTED_LOCATION "${MYSQLCLIENT_LIBRARY_DEBUG}")
+ endif()
+ set_target_properties(MySqlClient::MySqlClient PROPERTIES
+ INTERFACE_INCLUDE_DIRECTORIES "${MYSQLCLIENT_INCLUDE_DIR}"
+ INTERFACE_COMPILE_DEFINITIONS HAS_MYSQL=1)
+ endif()
+endif()
+
+mark_as_advanced(MYSQLCLIENT_INCLUDE_DIR MYSQLCLIENT_LIBRARY)