Make KPimGAPI dependency optional
authorSandro Knauß <hefee@debian.org>
Wed, 16 Dec 2020 00:48:39 +0000 (00:48 +0000)
committerSandro Knauß <hefee@debian.org>
Wed, 16 Dec 2020 00:48:39 +0000 (00:48 +0000)
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 d0cfc35684d1067ecbe43570b2a2897620ecf5dc..b5a21f1bb50ccc17dc50d4e9e184c362609b0007 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)
 add_definitions(-DQT_DISABLE_DEPRECATED_BEFORE=0x050f00)
@@ -51,6 +51,11 @@ add_definitions(-DKF_DISABLE_DEPRECATED_BEFORE_AND_AT=0x054800)
 
 add_definitions(-DQT_NO_FOREACH)
 add_definitions(-DQT_NO_KEYWORDS)
+
+if(KPimGAPI_FOUND)
+   add_definitions(-DWITH_GAPI)
+endif(KPimGAPI_FOUND)
+
 set(CMAKE_CXX_STANDARD 14)
 set(CMAKE_CXX_STANDARD_REQUIRED ON)
 if(BUILD_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 4fdfdca7f627c3d119538ec146392b02db006786..0e51e933a704d1a6e1572a14348e09a00075c44b 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")
@@ -185,6 +187,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() });
@@ -209,8 +212,12 @@ void SmtpJob::startPasswordRetrieval(bool forceRefresh)
     } else {
         startLoginJob();
     }
+#else
+    startLoginJob();
+#endif
 }
 
+#ifdef WITH_GAPI
 void SmtpJob::onTokenRequestFinished(KGAPI2::AccountPromise *promise)
 {
     if (promise->hasError()) {
@@ -227,7 +234,7 @@ void SmtpJob::onTokenRequestFinished(KGAPI2::AccountPromise *promise)
     transport()->setPassword(tokens);
     startLoginJob();
 }
-
+#endif
 
 void SmtpJob::startLoginJob()
 {
index 6fd111f147f2f5e646b2bcf52d14ec99a661b0c0..baf62777dced4ea96b09aab2361293cfbe92597e 100644 (file)
@@ -18,9 +18,11 @@ class Job;
 class Slave;
 }
 
+#ifdef WITH_GAPI
 namespace KGAPI2 {
 class AccountPromise;
 }
+#endif
 
 class SmtpJobPrivate;
 
@@ -61,7 +63,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();