find_package(KF5Akonadi ${AKONADI_LIB_VERSION} CONFIG REQUIRED)
find_package(KF5AkonadiMime ${AKONADIMIME_LIB_VERSION} CONFIG REQUIRED)
find_package(KPimSMTP ${KSMTP_LIB_VERSION} CONFIG REQUIRED)
-find_package(KPimGAPI ${KGAPI_LIB_VERSION} CONFIG REQUIRED)
+find_package(KPimGAPI ${KGAPI_LIB_VERSION} CONFIG)
option(KDEPIM_RUN_AKONADI_TEST "Enable autotest based on Akonadi." TRUE)
if (EXISTS "${CMAKE_SOURCE_DIR}/.git")
endif()
add_definitions(-DQT_NO_FOREACH)
+
+if(KPimGAPI_FOUND)
+ add_definitions(-DWITH_GAPI)
+endif(KPimGAPI_FOUND)
+
set(CMAKE_CXX_STANDARD 14)
if(BUILD_TESTING)
add_definitions(-DBUILD_TESTING)
KF5::ConfigWidgets
KF5::KIOWidgets
KPim::SMTP
+ )
+
+if(KPimGAPI_FOUND)
+target_link_libraries(mailtransport_smtpplugin
KPim::GAPICore
)
+endif(KPimGAPI_FOUND)
KF5::ConfigWidgets
KF5::KIOWidgets
KPim::SMTP
- KPim::GAPICore
TEST_NAME smtpjobtest
)
+
+if(KPimGAPI_FOUND)
+target_link_libraries(smtpjobtest
+ KPim::GAPICore
+ )
+endif(KPimGAPI_FOUND)
#include <KSMTP/LoginJob>
#include <KSMTP/SendJob>
+#ifdef WITH_GAPI
#include <KGAPI/Account>
#include <KGAPI/AuthJob>
#include <KGAPI/AccountManager>
+#endif
#define GOOGLE_API_KEY QStringLiteral("554041944266.apps.googleusercontent.com")
#define GOOGLE_API_SECRET QStringLiteral("mdT1DjzohxN3npUUzkENT0gO")
return;
}
+#ifdef WITH_GAPI
if (transport()->authenticationType() == TransportBase::EnumAuthenticationType::XOAUTH2) {
auto promise = KGAPI2::AccountManager::instance()->findAccount(
GOOGLE_API_KEY, transport()->userName(), { KGAPI2::Account::mailScopeUrl() });
} else {
startLoginJob();
}
+#else
+ startLoginJob();
+#endif
}
+#ifdef WITH_GAPI
void SmtpJob::onTokenRequestFinished(KGAPI2::AccountPromise *promise)
{
if (promise->hasError()) {
transport()->setPassword(tokens);
startLoginJob();
}
-
+#endif
void SmtpJob::startLoginJob()
{
class Slave;
}
+#ifdef WITH_GAPI
namespace KGAPI2 {
class AccountPromise;
}
+#endif
class SmtpJobPrivate;
private:
void startPasswordRetrieval(bool forceRefresh = false);
+#ifdef WITH_GAPI
void onTokenRequestFinished(KGAPI2::AccountPromise *result);
+#endif
void startSmtpJob();
void startLoginJob();
void startSendJob();