summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--cmake/FindMySQL.cmake50
-rw-r--r--src/plugins/sqldrivers/CMakeLists.txt2
-rw-r--r--src/plugins/sqldrivers/configure.cmake3
-rw-r--r--src/plugins/sqldrivers/mysql/CMakeLists.txt27
-rw-r--r--util/cmake/helper.py1
5 files changed, 81 insertions, 2 deletions
diff --git a/cmake/FindMySQL.cmake b/cmake/FindMySQL.cmake
new file mode 100644
index 0000000000..0cc5cb6368
--- /dev/null
+++ b/cmake/FindMySQL.cmake
@@ -0,0 +1,50 @@
+#.rst:
+# FindMySQL
+# ---------
+#
+# Try to locate the mysql client library.
+# If found, this will define the following variables:
+#
+# ``MySQL_FOUND``
+# True if the mysql library is available
+# ``MySQL_INCLUDE_DIRS``
+# The mysql include directories
+# ``MySQL_LIBRARIES``
+# The mysql libraries for linking
+#
+# If ``MySQL_FOUND`` is TRUE, it will also define the following
+# imported target:
+#
+# ``MySQL::MySQL``
+# The mysql client library
+
+find_package(PkgConfig)
+pkg_check_modules(PC_MySQL QUIET mysqlclient)
+
+find_path(MySQL_INCLUDE_DIRS
+ NAMES mysql.h
+ HINTS ${PC_MySQL_INCLUDEDIR}
+ PATH_SUFFIXES mysql)
+
+find_library(MySQL_LIBRARIES
+ NAMES mysqlclient
+ HINTS ${PC_MySQL_LIBDIR}
+)
+
+include(FindPackageHandleStandardArgs)
+find_package_handle_standard_args(MySQL DEFAULT_MSG MySQL_LIBRARIES MySQL_INCLUDE_DIRS)
+
+if(MySQL_FOUND AND NOT TARGET MySQL::MySQL)
+ add_library(MySQL::MySQL UNKNOWN IMPORTED)
+ set_target_properties(MySQL::MySQL PROPERTIES
+ IMPORTED_LOCATION "${MySQL_LIBRARIES}"
+ INTERFACE_INCLUDE_DIRECTORIES "${MySQL_INCLUDE_DIRS}")
+endif()
+
+mark_as_advanced(MySQL_INCLUDE_DIRS MySQL_LIBRARIES)
+
+include(FeatureSummary)
+set_package_properties(MySQL PROPERTIES
+ URL "https://www.mysql.com"
+ DESCRIPTION "MySQL client library")
+
diff --git a/src/plugins/sqldrivers/CMakeLists.txt b/src/plugins/sqldrivers/CMakeLists.txt
index 1676396f3a..61d0da800c 100644
--- a/src/plugins/sqldrivers/CMakeLists.txt
+++ b/src/plugins/sqldrivers/CMakeLists.txt
@@ -19,7 +19,7 @@ if(QT_FEATURE_sql_psql)
endif()
if(QT_FEATURE_sql_mysql)
-# TODO add_subdirectory(mysql)
+ add_subdirectory(mysql)
endif()
if(QT_FEATURE_sql_odbc)
diff --git a/src/plugins/sqldrivers/configure.cmake b/src/plugins/sqldrivers/configure.cmake
index 037b361559..e8609fb50d 100644
--- a/src/plugins/sqldrivers/configure.cmake
+++ b/src/plugins/sqldrivers/configure.cmake
@@ -6,6 +6,7 @@
#### Libraries
+qt_find_package(MySQL PROVIDED_TARGETS MySQL::MySQL)
qt_find_package(PostgreSQL PROVIDED_TARGETS PostgreSQL::PostgreSQL)
qt_find_package(ODBC PROVIDED_TARGETS ODBC::ODBC)
qt_find_package(SQLite3 PROVIDED_TARGETS SQLite::SQLite3)
@@ -27,7 +28,7 @@ qt_feature("sql_ibase" PRIVATE
)
qt_feature("sql_mysql" PRIVATE
LABEL "MySql"
- CONDITION libs.mysql OR FIXME
+ CONDITION MySQL_FOUND
)
qt_feature("sql_oci" PRIVATE
LABEL "OCI (Oracle)"
diff --git a/src/plugins/sqldrivers/mysql/CMakeLists.txt b/src/plugins/sqldrivers/mysql/CMakeLists.txt
new file mode 100644
index 0000000000..21e03ec52c
--- /dev/null
+++ b/src/plugins/sqldrivers/mysql/CMakeLists.txt
@@ -0,0 +1,27 @@
+# Generated from mysql.pro.
+
+#####################################################################
+## qsqlmysql Plugin:
+#####################################################################
+
+add_qt_plugin(qsqlmysql
+ TYPE sqldrivers
+ CLASS_NAME QMYSQLDriverPlugin
+ SOURCES
+ main.cpp
+ qsql_mysql.cpp qsql_mysql_p.h
+ DEFINES
+ QT_NO_CAST_FROM_ASCII
+ QT_NO_CAST_TO_ASCII
+ LIBRARIES
+ Qt::CorePrivate
+ Qt::SqlPrivate
+ PUBLIC_LIBRARIES
+ MySQL::MySQL
+ Qt::Core
+ Qt::Sql
+)
+
+#### Keys ignored in scope 1:.:.:mysql.pro:<TRUE>:
+# OTHER_FILES = "mysql.json"
+# PLUGIN_CLASS_NAME = "QMYSQLDriverPlugin"
diff --git a/util/cmake/helper.py b/util/cmake/helper.py
index 387b66fcb0..b1a07a0a11 100644
--- a/util/cmake/helper.py
+++ b/util/cmake/helper.py
@@ -216,6 +216,7 @@ _library_map = [
LibraryMapping('libudev', 'Libudev', 'PkgConfig::Libudev'),
LibraryMapping('lttng-ust', 'LTTngUST', 'LTTng::UST', resultVariable='LTTNGUST'),
LibraryMapping('mtdev', 'Mtdev', 'PkgConfig::Mtdev'),
+ LibraryMapping('mysql', 'MySQL', 'MySQL::MySQL'),
LibraryMapping('odbc', 'ODBC', 'ODBC::ODBC'),
LibraryMapping('opengl_es2', 'GLESv2', 'GLESv2::GLESv2'),
LibraryMapping('opengl', 'OpenGL', 'OpenGL::GL', resultVariable='OpenGL_OpenGL'),