Enable building of the mysql plugin

Change-Id: I8cb97afaaed46ee64b5a133e797179d7ddecdeef
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
This commit is contained in:
Ville Voutilainen 2019-09-02 17:37:26 +03:00
parent f9842ae7d4
commit 3ff31ed020
5 changed files with 81 additions and 2 deletions

50
cmake/FindMySQL.cmake Normal file
View File

@ -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")

View File

@ -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)

View File

@ -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)"

View File

@ -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"

View File

@ -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'),