Make KPimGAPI dependency optional
authorSandro Knauß <hefee@debian.org>
Tue, 26 May 2020 22:00:08 +0000 (23:00 +0100)
committerSandro Knauß <hefee@debian.org>
Tue, 26 May 2020 22:00:08 +0000 (23:00 +0100)
Origin: Debian
Last-Update: 2018-10-08

Last-Update: 2018-10-08
Gbp-Pq: Name make_libgapi_optional.patch

CMakeLists.txt
src/kmailtransport/plugins/smtp/CMakeLists.txt
src/kmailtransport/plugins/smtp/autotests/CMakeLists.txt
src/kmailtransport/plugins/smtp/smtpjob.cpp
src/kmailtransport/plugins/smtp/smtpjob.h

index 05988bfeb17c76d2f4498cf8e8077f891a5bccbe..2e29afc00d2b7514ff5e68afb7732cd7e2ccd03e 100644 (file)
@@ -43,7 +43,7 @@ find_package(KF5Mime ${KMIME_LIB_VERSION} CONFIG REQUIRED)
 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")
@@ -52,6 +52,11 @@ 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)
index 8aa5a8d8527eb542b62873cf81482b002876e491..6742a32461a1cac737e411c4483be10bb76aea54 100644 (file)
@@ -27,5 +27,10 @@ target_link_libraries(mailtransport_smtpplugin
     KF5::ConfigWidgets
     KF5::KIOWidgets
     KPim::SMTP
+    )
+
+if(KPimGAPI_FOUND)
+target_link_libraries(mailtransport_smtpplugin
     KPim::GAPICore
     )
+endif(KPimGAPI_FOUND)
index a92ecf4ddb3ee0b4cd377440d4058b746cb5f47c..3c3cd3491b0dd9fd906d11d32d670280880684fd 100644 (file)
@@ -15,6 +15,11 @@ ecm_add_test(smtpjobtest.cpp
                    KF5::ConfigWidgets
                    KF5::KIOWidgets
                    KPim::SMTP
-                   KPim::GAPICore
     TEST_NAME smtpjobtest
 )
+
+if(KPimGAPI_FOUND)
+target_link_libraries(smtpjobtest
+    KPim::GAPICore
+    )
+endif(KPimGAPI_FOUND)
index 5f3c7fa32c1b72e38436e5da64c8f976bbd81756..8fc081f033706d4accf07977e3c6be2092a44a3a 100644 (file)
 #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")
@@ -196,6 +198,7 @@ void SmtpJob::startPasswordRetrieval(bool forceRefresh)
         return;
     }
 
+#ifdef WITH_GAPI
     if (transport()->authenticationType() == TransportBase::EnumAuthenticationType::XOAUTH2) {
         auto promise = KGAPI2::AccountManager::instance()->findAccount(
             GOOGLE_API_KEY, transport()->userName(), { KGAPI2::Account::mailScopeUrl() });
@@ -220,8 +223,12 @@ void SmtpJob::startPasswordRetrieval(bool forceRefresh)
     } else {
         startLoginJob();
     }
+#else
+    startLoginJob();
+#endif
 }
 
+#ifdef WITH_GAPI
 void SmtpJob::onTokenRequestFinished(KGAPI2::AccountPromise *promise)
 {
     if (promise->hasError()) {
@@ -238,7 +245,7 @@ void SmtpJob::onTokenRequestFinished(KGAPI2::AccountPromise *promise)
     transport()->setPassword(tokens);
     startLoginJob();
 }
-
+#endif
 
 void SmtpJob::startLoginJob()
 {
index 72458a8a32e3269710a083a29f2ffb633a3cb56c..574a935b753ee8cb3d82d877db3cd6fef00fdfbe 100644 (file)
@@ -31,9 +31,11 @@ class Job;
 class Slave;
 }
 
+#ifdef WITH_GAPI
 namespace KGAPI2 {
 class AccountPromise;
 }
+#endif
 
 class SmtpJobPrivate;
 
@@ -74,7 +76,9 @@ protected Q_SLOTS:
 
 private:
     void startPasswordRetrieval(bool forceRefresh = false);
+#ifdef WITH_GAPI
     void onTokenRequestFinished(KGAPI2::AccountPromise *result);
+#endif
     void startSmtpJob();
     void startLoginJob();
     void startSendJob();