diff --git a/cmake/FindSoci.cmake b/cmake/FindSoci.cmake index 91c4e376d..e930f93a9 100644 --- a/cmake/FindSoci.cmake +++ b/cmake/FindSoci.cmake @@ -61,6 +61,10 @@ IF(SOCI_INCLUDE_DIRS AND SOCI_LIBRARIES) IF(SOCI_${plugin}_PLUGIN) MESSAGE(STATUS " * Plugin ${plugin} found ${SOCI_${plugin}_PLUGIN}.") SET(SOCI_${plugin}_FOUND True) + + if(IOS OR ANDROID) + list(APPEND SOCI_LIBRARIES ${SOCI_${plugin}_PLUGIN}) + endif() ELSE() MESSAGE(STATUS " * Plugin ${plugin} not found.") SET(SOCI_${plugin}_FOUND False) diff --git a/src/db/abstract/abstract-db.cpp b/src/db/abstract/abstract-db.cpp index a3cb11e0a..4c101eb06 100644 --- a/src/db/abstract/abstract-db.cpp +++ b/src/db/abstract/abstract-db.cpp @@ -33,9 +33,14 @@ LINPHONE_BEGIN_NAMESPACE AbstractDb::AbstractDb (AbstractDbPrivate &p) : Object(p) {} +extern "C" void register_factory_sqlite3(); + bool AbstractDb::connect (Backend backend, const string ¶meters) { L_D(); - +#if defined(__APPLE__) || defined(__ANDROID__) + if (backend == Sqlite3) + register_factory_sqlite3(); +#endif // defined(__APPLE__) || defined(__ANDROID__)*/ d->backend = backend; d->dbSession = DbSessionProvider::getInstance()->getSession( (backend == Mysql ? "mysql://" : "sqlite3://") + parameters