Make KPimGAPI dependency optional
authorSandro Knauß <hefee@debian.org>
Fri, 1 Apr 2022 20:09:51 +0000 (21:09 +0100)
committerPatrick Franz <deltaone@debian.org>
Fri, 1 Apr 2022 20:09:51 +0000 (21:09 +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 b96dd0b20d037131abce2a9e7d44a9c68e59bf99..93e6599c56bc7f3a705aad5ff98f4fa714f69266 100644 (file)
@@ -53,7 +53,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)
@@ -65,6 +65,10 @@ set_package_properties(Qt5Keychain PROPERTIES
 add_definitions(-DQT_DISABLE_DEPRECATED_BEFORE=0x050f02)
 add_definitions(-DKF_DISABLE_DEPRECATED_BEFORE_AND_AT=0x055800)
 
+if(KPimGAPI_FOUND)
+   add_definitions(-DWITH_GAPI)
+endif(KPimGAPI_FOUND)
+
 if(BUILD_TESTING)
     find_package(Qt5Test CONFIG REQUIRED)
    add_definitions(-DBUILD_TESTING)
index cc63d8c23c932e271958e7c3e3f82df3361d8b79..b338a6e64bf4718335c472a86781e46202d6cc1e 100644 (file)
@@ -32,5 +32,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 9d565af95be91bdd130eb55e6511c0fd85eead7a..9cc519574a54a0fbf3c27f569892c95f2dd9bdf2 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")
@@ -187,6 +189,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) {
@@ -208,8 +211,12 @@ void SmtpJob::startPasswordRetrieval(bool forceRefresh)
     } else {
         startLoginJob();
     }
+#else
+    startLoginJob();
+#endif
 }
 
+#ifdef WITH_GAPI
 void SmtpJob::onTokenRequestFinished(KGAPI2::AccountPromise *promise)
 {
     if (promise->hasError()) {
@@ -225,6 +232,7 @@ void SmtpJob::onTokenRequestFinished(KGAPI2::AccountPromise *promise)
     transport()->setPassword(tokens);
     startLoginJob();
 }
+#endif
 
 void SmtpJob::startLoginJob()
 {
index 6c9860585d6278352dee265216355bd5466d0ac6..bed51f88b92ec38af92264bba358e511b4ac4eb8 100644 (file)
@@ -20,10 +20,12 @@ class Job;
 class Slave;
 }
 
+#ifdef WITH_GAPI
 namespace KGAPI2
 {
 class AccountPromise;
 }
+#endif
 
 class SmtpJobPrivate;
 
@@ -65,7 +67,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();