summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSlávek Banko <slavek.banko@axis.cz>2019-09-08 19:26:24 +0200
committerSlávek Banko <slavek.banko@axis.cz>2019-09-08 19:26:24 +0200
commit7b0045aa6b827715b1e8e4efc28278ebdabb55f5 (patch)
tree48cf89c1e95788611f53c416631c6988b2ed1a08
parent33c6b8103156e62f73504c1176101d52b0b82efd (diff)
downloadamarok-7b0045aa6b827715b1e8e4efc28278ebdabb55f5.tar.gz
amarok-7b0045aa6b827715b1e8e4efc28278ebdabb55f5.zip
Added detection whether the basic structure of MySQL / MariaDB
client is named st_mysql or MYSQL. This resolves FTBFS with MySQL client >= 8.0. This resolves issue #9. Signed-off-by: Slávek Banko <slavek.banko@axis.cz>
-rw-r--r--amarok/configure.in.in35
-rw-r--r--amarok/src/collectiondb.h2
-rw-r--r--config.h.in3
3 files changed, 39 insertions, 1 deletions
diff --git a/amarok/configure.in.in b/amarok/configure.in.in
index efc35c45..897bac90 100644
--- a/amarok/configure.in.in
+++ b/amarok/configure.in.in
@@ -496,6 +496,40 @@ if test "$enable_mysql" = "yes"; then
mysql_includes=`mysql_config --cflags`
mysql_libs=`mysql_config --libs`
+
+ AC_LANG_SAVE
+ AC_LANG_CPLUSPLUS
+ save_CXXFLAGS="$CXXFLAGS"
+ CXXFLAGS="$CXXFLAGS $mysql_includes"
+
+ AC_MSG_CHECKING([if mysql has st_mysql struct])
+ AC_TRY_COMPILE(
+ [
+ #include <mysql.h>
+ 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 <mysql.h>
+ typedef struct MYSQL MYSQL;
+ ],
+ [],
+ AC_MSG_RESULT( yes )
+ mysql_struct=MYSQL,
+ AC_MSG_RESULT( no )
+ enable_mysql=no
+ )
+ ]
+ )
+
+ CXXFLAGS="$save_CXXFLAGS"
+ AC_LANG_RESTORE
else
amarok_warning_mysql_notfound=yes
enable_mysql=no
@@ -504,6 +538,7 @@ if test "$enable_mysql" = "yes"; then
fi
AM_CONDITIONAL(enable_mysql, test x$enable_mysql = xyes)
+AC_DEFINE_UNQUOTED(MYSQL_STRUCT, $mysql_struct, [struct type name for MySql])
AC_SUBST(mysql_includes)
AC_SUBST(mysql_libs)
diff --git a/amarok/src/collectiondb.h b/amarok/src/collectiondb.h
index b9a42d53..16ab29a6 100644
--- a/amarok/src/collectiondb.h
+++ b/amarok/src/collectiondb.h
@@ -149,7 +149,7 @@ class SqliteConnection : public DbConnection
#ifdef USE_MYSQL
-typedef struct st_mysql MYSQL;
+typedef struct MYSQL_STRUCT MYSQL;
class MySqlConnection : public DbConnection
{
diff --git a/config.h.in b/config.h.in
index 34a6a06f..7886e643 100644
--- a/config.h.in
+++ b/config.h.in
@@ -230,6 +230,9 @@
*/
#undef LT_OBJDIR
+/* struct type name for MySql */
+#undef MYSQL_STRUCT
+
/* Name of package */
#undef PACKAGE