Make KPimGAPI dependency optional
authorSandro Knauß <hefee@debian.org>
Tue, 17 Aug 2021 03:49:41 +0000 (04:49 +0100)
committerNorbert Preining <norbert@preining.info>
Tue, 17 Aug 2021 03:49:41 +0000 (04:49 +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 404dacea95cb182fe889fdbe1a058e7e1bc4f416..c1ddb8b1bdf4ab0279e61f9925a95574d4682934 100644 (file)
@@ -45,7 +45,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)
 
 #it will replace kwallet support
 find_package(Qt5Keychain CONFIG)
@@ -58,6 +58,10 @@ option(KDEPIM_RUN_AKONADI_TEST "Enable autotest based on Akonadi." ON)
 add_definitions(-DQT_DISABLE_DEPRECATED_BEFORE=0x050f00)
 add_definitions(-DKF_DISABLE_DEPRECATED_BEFORE_AND_AT=0x055400)
 
+if(KPimGAPI_FOUND)
+   add_definitions(-DWITH_GAPI)
+endif(KPimGAPI_FOUND)
+
 set(CMAKE_CXX_STANDARD 17)
 set(CMAKE_CXX_STANDARD_REQUIRED ON)
 if(BUILD_TESTING)
index a5105d9e547a65001ee503bf375467e7bb23aa3d..6fe5c1d6134c0690554a798b86ba5d23ce9eb590 100644 (file)
@@ -26,5 +26,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 6e5f2b5a6cdfff327b2d199d5175d5a70a672b3b..9a418ada325b09ae2efcff9e25e60d095c2f71bb 100644 (file)
@@ -13,6 +13,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 7ad0124772d29e90bcccb4b20dc21fc38df33cc9..9795d33ab5baa6e7bd0076202fe1cf91ce83760b 100644 (file)
 #include <KSMTP/LoginJob>
 #include <KSMTP/SendJob>
 
+#ifdef WITH_GAPI
 #include <KGAPI/Account>
 #include <KGAPI/AccountManager>
 #include <KGAPI/AuthJob>
+#endif
 
 #define GOOGLE_API_KEY QStringLiteral("554041944266.apps.googleusercontent.com")
 #define GOOGLE_API_SECRET QStringLiteral("mdT1DjzohxN3npUUzkENT0gO")
@@ -175,6 +177,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()});
         connect(promise, &KGAPI2::AccountPromise::finished, this, [forceRefresh, this](KGAPI2::AccountPromise *promise) {
@@ -196,8 +199,12 @@ void SmtpJob::startPasswordRetrieval(bool forceRefresh)
     } else {
         startLoginJob();
     }
+#else
+    startLoginJob();
+#endif
 }
 
+#ifdef WITH_GAPI
 void SmtpJob::onTokenRequestFinished(KGAPI2::AccountPromise *promise)
 {
     if (promise->hasError()) {
@@ -213,6 +220,7 @@ void SmtpJob::onTokenRequestFinished(KGAPI2::AccountPromise *promise)
     transport()->setPassword(tokens);
     startLoginJob();
 }
+#endif
 
 void SmtpJob::startLoginJob()
 {
index 29817e6730ab7c16c27c6d4bddfb0aaa1e1692fd..2aa09ea963de9adf3ad5efbb46a42c2c6fccb326 100644 (file)
@@ -18,10 +18,12 @@ class Job;
 class Slave;
 }
 
+#ifdef WITH_GAPI
 namespace KGAPI2
 {
 class AccountPromise;
 }
+#endif
 
 class SmtpJobPrivate;
 
@@ -63,7 +65,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();