From e8393376969caf27b0c976d01645edd023c14df2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Kundr=C3=A1t?= Date: Sat, 17 Dec 2016 13:26:56 +0100 Subject: Support both vanilla gpgme and KDE Frameworks gpgmepp KF5Gpgmepp has been merged into GPGME (since 1.7.0) and will not see any further releases with KDE Applications. We still care about older distros (and that means older gpgme, and therefore a need for extra bindings). Stuff is a bit more complicated because 1.7.x is not thread-safe by default. Given that gpgme upstream start making their releases pretty often this fall, it seems safe to go with 1.8.0. Change-Id: Ia2f05bd8ed2a894435ca328a886325366ba41622 Inspired-By: Heiko Becker Inspired-By: Andreas Sturmlechner Fixed-By: Caspar Schutijser --- CMakeLists.txt | 30 ++++++++++++++++++------------ 1 file changed, 18 insertions(+), 12 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 3e129c1..3346142 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -51,7 +51,8 @@ trojita_option(WITH_ZLIB "Build with zlib library" AUTO) trojita_option(WITH_SHARED_PLUGINS "Enable shared dynamic plugins" ON) trojita_option(BUILD_TESTING "Build tests" ON) trojita_option(WITH_MIMETIC "Build with client-side MIME parsing" AUTO) -trojita_option(WITH_GPGMEPP "Build with the GpgME++ library for cryptography" AUTO) +trojita_option(WITH_GPGMEPP "Use GpgME's native C++ bindings" AUTO) +trojita_option(WITH_KF5_GPGMEPP "Use legacy discontinued GpgME++ library from KDE frameworks" AUTO) if(WIN32) trojita_option(WITH_NSIS "Build Windows NSIS installer" AUTO "WITH_DESKTOP") @@ -84,8 +85,13 @@ trojita_plugin_option(WITH_QTKEYCHAIN_PLUGIN "Build Qtkeychain password plugin" trojita_find_package(Git "" "" "" "") trojita_find_package(Mimetic "" "http://www.codesink.org/mimetic_mime_library.html" "C++ MIME Library" "Required for client-side MIME parsing" WITH_MIMETIC) -trojita_find_package(KF5Gpgmepp "" "https://quickgit.kde.org/?p=gpgmepp.git" "C++ bindings for gpgme" "Needed for encrypted/signed e-mails" WITH_GPGMEPP) -trojita_option(WITH_CRYPTO_MESSAGES "Enable support for encrypted messages" AUTO "WITH_MIMETIC;WITH_GPGMEPP") +trojita_find_package(Gpgmepp "1.8.0" "https://gnupg.org/related_software/gpgme/index.html" "C++/Qt bindings for gpgme" "Needed for encrypted/signed e-mails" WITH_GPGMEPP) +if(NOT WITH_GPGMEPP) + trojita_find_package(KF5Gpgmepp "" "https://commits.kde.org/gpgmepp?path=/" "C++ bindings for gpgme" "Needed for encrypted/signed e-mails" WITH_KF5_GPGMEPP) + trojita_option(WITH_CRYPTO_MESSAGES "Enable support for encrypted messages" AUTO "WITH_MIMETIC;WITH_KF5_GPGMEPP") +else() + trojita_option(WITH_CRYPTO_MESSAGES "Enable support for encrypted messages" AUTO "WITH_MIMETIC;WITH_GPGMEPP") +endif() if(WIN32) trojita_find_package(MakeNSIS "" "http://nsis.sourceforge.net" "Nullsoft Scriptable Install System" "Needed for building Windows installer" WITH_NSIS) @@ -197,7 +203,7 @@ else() set(TROJITA_HAVE_MIMETIC False) endif() -if(WITH_GPGMEPP) +if(WITH_GPGMEPP OR WITH_KF5_GPGMEPP) set(TROJITA_HAVE_GPGMEPP True) else() set(TROJITA_HAVE_GPGMEPP False) @@ -315,12 +321,10 @@ if(WITH_MIMETIC) ) endif() if(WITH_CRYPTO_MESSAGES) - if(WITH_GPGMEPP) set(libCryptography_SOURCES ${libCryptography_SOURCES} ${path_Cryptography}/GpgMe++.cpp ) - endif() endif() if(WITH_ZLIB) @@ -614,13 +618,15 @@ if(WITH_MIMETIC) set_property(TARGET Cryptography APPEND PROPERTY INCLUDE_DIRECTORIES ${MIMETIC_INCLUDE_DIRS}) endif() if(WITH_CRYPTO_MESSAGES) - if(WITH_GPGMEPP) - if (WIN32) - target_link_libraries(Cryptography KF5::Gpgmepp KF5::QGpgme) - else() - target_link_libraries(Cryptography KF5::Gpgmepp-pthread KF5::QGpgme) + if(WITH_GPGMEPP) + target_link_libraries(Cryptography Gpgmepp QGpgme) + elseif(WITH_KF5_GPGMEPP) + if(WIN32) + target_link_libraries(Cryptography KF5::Gpgmepp KF5::QGpgme) + else() + target_link_libraries(Cryptography KF5::Gpgmepp-pthread KF5::QGpgme) + endif() endif() - endif() endif() ## ClearText password plugin -- cgit v0.11.2