diff --git a/sdk/databaselayer/CMakeLists.txt b/sdk/databaselayer/CMakeLists.txt index b7632bc7d..23907a5ad 100644 --- a/sdk/databaselayer/CMakeLists.txt +++ b/sdk/databaselayer/CMakeLists.txt @@ -56,6 +56,18 @@ if ( WITH_MYSQL ) include_directories(${MYSQLCLIENT_INCLUDE}) message("-- Adding MySQL include path: ${MYSQLCLIENT_INCLUDE} ") FILE(GLOB MYSQL_SRCS "src/dblayer/Mysql*.cpp") + +if(UNIX AND NOT APPLE) +# Recent (2019) versions of debian and Arch have mariadb 10.3 which, it seems, isn't directly compatable with the included dblayer source +# It has a necessary header file in /usr/include/mariadb/server/ so flag to #include it if it exists +# See https://github.com/eranif/codelite/issues/2215 + find_path(MARIADBSERVER_INCLUDE NAMES mysql.h PATH_SUFFIXES mysql/server mariadb/server) + if ( NOT ${MARIADBSERVER_INCLUDE} STREQUAL "MARIADBSERVER_INCLUDE-NOTFOUND" ) + add_definitions( -DMARIADBSERVER_INCLUDE=1 ) + message( "-- Adding MySQL server include" ) + endif(NOT ${MARIADBSERVER_INCLUDE} STREQUAL "MARIADBSERVER_INCLUDE-NOTFOUND") +endif(UNIX AND NOT APPLE) + endif ( WITH_MYSQL ) # Define the output diff --git a/sdk/databaselayer/src/dblayer/MysqlPreparedStatementWrapper.cpp b/sdk/databaselayer/src/dblayer/MysqlPreparedStatementWrapper.cpp index 699df3a53..3cac9b6c6 100644 --- a/sdk/databaselayer/src/dblayer/MysqlPreparedStatementWrapper.cpp +++ b/sdk/databaselayer/src/dblayer/MysqlPreparedStatementWrapper.cpp @@ -1,3 +1,9 @@ +#if defined(MARIADBSERVER_INCLUDE) +// See https://github.com/eranif/codelite/issues/2215 +// (For some reason this needs to come before the other #includes) + #include "server/mysql.h" +#endif + #include "../include/MysqlPreparedStatementWrapper.h" #include "../include/MysqlPreparedStatementResultSet.h" #include "../include/MysqlDatabaseLayer.h" diff --git a/sdk/databaselayer/src/dblayer/MysqlResultSetMetaData.cpp b/sdk/databaselayer/src/dblayer/MysqlResultSetMetaData.cpp index a22963a9a..831708d23 100644 --- a/sdk/databaselayer/src/dblayer/MysqlResultSetMetaData.cpp +++ b/sdk/databaselayer/src/dblayer/MysqlResultSetMetaData.cpp @@ -1,5 +1,5 @@ #include "../include/MysqlResultSetMetaData.h" -#include "mysql_com.h" +#include "mysql.h" // ctor MysqlResultSetMetaData::MysqlResultSetMetaData(MysqlInterface* pInterface, MYSQL_RES* pMetaData)