diff options
-rw-r--r-- | cmake/FindMySQL.cmake | 50 | ||||
-rw-r--r-- | src/plugins/sqldrivers/CMakeLists.txt | 2 | ||||
-rw-r--r-- | src/plugins/sqldrivers/configure.cmake | 3 | ||||
-rw-r--r-- | src/plugins/sqldrivers/mysql/CMakeLists.txt | 27 | ||||
-rw-r--r-- | util/cmake/helper.py | 1 |
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'), |