From fa4a35fd4b069bde6cc6d924f18376096b644737 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sl=C3=A1vek=20Banko?= Date: Sun, 8 Sep 2019 20:05:18 +0200 Subject: [PATCH] Added detection whether the basic structure of MySQL / MariaDB client is named st_mysql or MYSQL. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This resolves FTBFS with MySQL client >= 8.0. This resolves issue #4. Signed-off-by: Slávek Banko --- kexi/kexidb/drivers/configure.in.in | 37 +++++++++++++++++++ kexi/kexidb/drivers/mySQL/mysqlconnection_p.h | 6 ++- 2 files changed, 42 insertions(+), 1 deletion(-) diff --git a/kexi/kexidb/drivers/configure.in.in b/kexi/kexidb/drivers/configure.in.in index 1afe34871..a5126cf47 100644 --- a/kexi/kexidb/drivers/configure.in.in +++ b/kexi/kexidb/drivers/configure.in.in @@ -90,6 +90,43 @@ dnl *** Show that we are doing as requested. *** AC_MSG_NOTICE([Not attempting to configure MySQL as requested]) fi +if test "$compile_mysql_plugin" = "yes"; then + AC_LANG_SAVE + AC_LANG_CPLUSPLUS + save_CXXFLAGS="$CXXFLAGS" + CXXFLAGS="$CXXFLAGS -I$mysql_incdir" + + AC_MSG_CHECKING([if mysql has st_mysql struct]) + AC_TRY_COMPILE( + [ + #include + typedef struct st_mysql MYSQL; + ], + [], + AC_MSG_RESULT( yes ) + mysql_struct=st_mysql, + AC_MSG_RESULT( no ) + [ + AC_MSG_CHECKING([if mysql has MYSQL struct]) + AC_TRY_COMPILE( + [ + #include + typedef struct MYSQL MYSQL; + ], + [], + AC_MSG_RESULT( yes ) + mysql_struct=MYSQL, + AC_MSG_RESULT( no ) + compile_mysql_plugin=no + ) + ] + ) + + CXXFLAGS="$save_CXXFLAGS" + AC_LANG_RESTORE +fi + +AC_DEFINE_UNQUOTED(MYSQL_STRUCT, $mysql_struct, [struct type name for MySql]) AM_CONDITIONAL(compile_mysql_plugin, test "$compile_mysql_plugin" = "yes") dnl ======================================== diff --git a/kexi/kexidb/drivers/mySQL/mysqlconnection_p.h b/kexi/kexidb/drivers/mySQL/mysqlconnection_p.h index 85d8c57bd..9b1ad4022 100644 --- a/kexi/kexidb/drivers/mySQL/mysqlconnection_p.h +++ b/kexi/kexidb/drivers/mySQL/mysqlconnection_p.h @@ -20,6 +20,10 @@ the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, #ifndef KEXIDB_MYSQLCLIENT_P_H #define KEXIDB_MYSQLCLIENT_P_H +#if defined(HAVE_CONFIG_H) +#include "config.h" +#endif + #include #ifdef TQ_WS_WIN @@ -28,7 +32,7 @@ the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, #include #include -typedef struct st_mysql MYSQL; +typedef struct MYSQL_STRUCT MYSQL; #undef bool class TQCString;