Warning, /utilities/kgpg/CMakeLists.txt is written in an unsupported language. File is not indexed.

0001 cmake_minimum_required(VERSION 3.16 FATAL_ERROR)
0002 
0003 # KDE Application Version, managed by release script
0004 set (RELEASE_SERVICE_VERSION_MAJOR "24")
0005 set (RELEASE_SERVICE_VERSION_MINOR "04")
0006 set (RELEASE_SERVICE_VERSION_MICRO "70")
0007 set (RELEASE_SERVICE_VERSION "${RELEASE_SERVICE_VERSION_MAJOR}.${RELEASE_SERVICE_VERSION_MINOR}.${RELEASE_SERVICE_VERSION_MICRO}")
0008 
0009 project(kgpg VERSION ${RELEASE_SERVICE_VERSION})
0010 set(QT_MIN_VERSION "6.4.0")
0011 set(KF_MIN_VERSION "5.240.0")
0012 
0013 find_package(ECM ${KF_MIN_VERSION} REQUIRED NO_MODULE)
0014 set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH} ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_SOURCE_DIR}/cmake/")
0015 
0016 include(KDEInstallDirs)
0017 include(KDECMakeSettings)
0018 include(KDECompilerSettings NO_POLICY_SCOPE)
0019 
0020 include(CheckIncludeFileCXX)
0021 include(ECMAddAppIcon)
0022 include(ECMInstallIcons)
0023 include(FeatureSummary)
0024 include(ECMSetupVersion)
0025 include(CMakeFindDependencyMacro)
0026 include(ECMQtDeclareLoggingCategory)
0027 include(ECMDeprecationSettings)
0028 
0029 set(KF_MAJOR_VERSION "6")
0030 
0031 find_package(Qt6 ${QT_MIN_VERSION} CONFIG REQUIRED COMPONENTS
0032   Core
0033   DBus
0034   Gui
0035   PrintSupport
0036   Widgets
0037   Core5Compat
0038 )
0039 
0040 
0041 # Load the frameworks we need
0042 find_package(KF6 ${KF_MIN_VERSION} REQUIRED
0043   Archive
0044   DocTools
0045   Codecs
0046   CoreAddons
0047   Crash
0048   DBusAddons
0049   I18n
0050   JobWidgets
0051   KIO
0052   Notifications
0053   Service
0054   TextWidgets
0055   XmlGui
0056   WidgetsAddons
0057   WindowSystem
0058   Contacts
0059   StatusNotifierItem
0060 )
0061 
0062 find_package(KPim6AkonadiContactWidgets 5.24.40 REQUIRED)
0063 
0064 # only headers are used
0065 find_package(Gpgme REQUIRED)
0066 
0067 ecm_set_disabled_deprecation_versions(
0068      KF 5.80.0
0069     )
0070 
0071 add_subdirectory( icons )
0072 add_subdirectory( doc )
0073 include_directories(  ${KDEPIMLIBS_INCLUDE_DIR} ${GPGME_INCLUDES} )
0074 
0075 option(KGPG_DEBUG_TRANSACTIONS "show commands and results of gpg calls in debug log" Off)
0076 
0077 set(core_SRCS
0078    core/convert.cpp
0079    core/images.cpp
0080    core/emailvalidator.cpp
0081    core/kgpgkey.cpp
0082    core/KGpgExpandableNode.cpp
0083    core/KGpgKeyNode.cpp
0084    core/KGpgGroupMemberNode.cpp
0085    core/KGpgGroupNode.cpp
0086    core/KGpgNode.cpp
0087    core/KGpgOrphanNode.cpp
0088    core/KGpgRefNode.cpp
0089    core/KGpgRootNode.cpp
0090    core/KGpgSignableNode.cpp
0091    core/KGpgSignNode.cpp
0092    core/KGpgSubkeyNode.cpp
0093    core/KGpgUatNode.cpp
0094    core/KGpgUidNode.cpp
0095 )
0096 
0097 set(kgpg_editor_SRCS
0098    editor/kgpgmd5widget.cpp
0099    editor/kgpgeditor.cpp
0100    editor/kgpgtextedit.cpp
0101 )
0102 
0103 set(kgpg_model_SRCS
0104    model/gpgservermodel.cpp
0105    model/kgpgitemmodel.cpp
0106    model/groupeditproxymodel.cpp
0107    model/keylistproxymodel.cpp
0108    model/kgpgsearchresultmodel.cpp
0109    model/selectkeyproxymodel.cpp
0110 )
0111 
0112 set(kgpg_transaction_SRCS
0113    transactions/kgpgtransaction.cpp
0114    transactions/kgpgtransactionjob.cpp
0115    transactions/kgpgtransactionprivate.cpp
0116    transactions/kgpguidtransaction.cpp
0117    transactions/kgpgeditkeytransaction.cpp
0118    transactions/kgpgsigntransactionhelper.cpp
0119    transactions/kgpgchangedisable.cpp
0120    transactions/kgpgchangeexpire.cpp
0121    transactions/kgpgchangepass.cpp
0122    transactions/kgpgchangetrust.cpp
0123    transactions/kgpgdelsign.cpp
0124    transactions/kgpgdeluid.cpp
0125    transactions/kgpgencrypt.cpp
0126    transactions/kgpgexport.cpp
0127    transactions/kgpgaddphoto.cpp
0128    transactions/kgpgadduid.cpp
0129    transactions/kgpggeneratekey.cpp
0130    transactions/kgpggeneraterevoke.cpp
0131    transactions/kgpgdecrypt.cpp
0132    transactions/kgpgdelkey.cpp
0133    transactions/kgpgimport.cpp
0134    transactions/kgpgkeyservertransaction.cpp
0135    transactions/kgpgkeyservergettransaction.cpp
0136    transactions/kgpgkeyserversearchtransaction.cpp
0137    transactions/kgpgprimaryuid.cpp
0138    transactions/kgpgsendkeys.cpp
0139    transactions/kgpgsignkey.cpp
0140    transactions/kgpgsigntext.cpp
0141    transactions/kgpgsignuid.cpp
0142    transactions/kgpgtextorfiletransaction.cpp
0143    transactions/kgpgverify.cpp
0144    transactions/customstyleditemdelegate.cpp
0145 )
0146 
0147 set(kgpg_SRCS ${core_SRCS} ${kgpg_editor_SRCS} ${kgpg_model_SRCS} ${kgpg_transaction_SRCS}
0148    selectpublickeydialog.cpp
0149    selectsecretkey.cpp
0150    kgpgoptions.cpp
0151    keysmanager.cpp
0152    kgpg.cpp
0153    kgpgkeygenerate.cpp
0154    kgpginterface.cpp
0155    kgpgtextinterface.cpp
0156    gpgproc.cpp
0157    klinebufferedprocess.cpp
0158    klinebufferedprocessprivate.cpp
0159    keyservers.cpp
0160    detailedconsole.cpp
0161    keyinfodialog.cpp
0162    newkey.cpp
0163    keyexport.cpp
0164    conf_encryption.cpp
0165    kgpgrevokewidget.cpp
0166    keytreeview.cpp
0167    groupedit.cpp
0168    sourceselect.cpp
0169    kgpgchangekey.cpp
0170    kgpgfirstassistant.cpp
0171    kgpgexternalactions.cpp
0172    selectexpirydate.cpp
0173    caff.cpp
0174    foldercompressjob.cpp
0175 )
0176 
0177 ecm_qt_declare_logging_category(kgpg_SRCS HEADER kgpg_general_debug.h IDENTIFIER KGPG_LOG_GENERAL CATEGORY_NAME org.kde.kgpg_general DESCRIPTION "kgpg (general)" EXPORT KGPG)
0178 ecm_qt_declare_logging_category(kgpg_SRCS HEADER kgpg_transactions_debug.h IDENTIFIER KGPG_LOG_TRANSACTIONS CATEGORY_NAME org.kde.kgpg_transactions DESCRIPTION "kgpg (transactions)" EXPORT KGPG)
0179 
0180 set(kgpg_HDRS
0181    caff.h
0182    caff_p.h
0183    conf_encryption.h
0184    detailedconsole.h
0185    foldercompressjob.h
0186    gpgproc.h
0187    groupedit.h
0188    keyexport.h
0189    keyinfodialog.h
0190    keyservers.h
0191    keysmanager.h
0192    keytreeview.h
0193    kgpg.h
0194    kgpgchangekey.h
0195    kgpgexternalactions.h
0196    kgpgfirstassistant.h
0197    kgpginterface.h
0198    kgpgkeygenerate.h
0199    kgpgoptions.h
0200    kgpgrevokewidget.h
0201    kgpgtextinterface.h
0202    klinebufferedprocess.h
0203    newkey.h
0204    selectexpirydate.h
0205    selectpublickeydialog.h
0206    selectsecretkey.h
0207    sourceselect.h
0208    transactions/customstyleditemdelegate.h
0209 )
0210 
0211 qt_add_dbus_adaptor( kgpg_SRCS org.kde.kgpg.Key.xml keysmanager.h KeysManager)
0212 
0213 qt_add_dbus_interface(kgpg_SRCS org.kde.kgpg.Key.xml kgpg_interface )
0214 
0215 ki18n_wrap_ui(kgpg_SRCS
0216     adduid.ui
0217     conf_gpg.ui
0218     searchres.ui
0219     groupedit.ui
0220     conf_ui2.ui
0221     conf_servers.ui
0222     conf_misc.ui
0223     newkey.ui
0224     keyexport.ui
0225     conf_encryption.ui
0226     kgpgKeyInfo.ui
0227     kgpgkeygenerate.ui
0228     kgpgrevokewidget.ui
0229     keyserver.ui
0230     conf_decryption.ui
0231     sourceselect.ui
0232 )
0233 
0234 file(GLOB ICONS_SRCS "${CMAKE_CURRENT_SOURCE_DIR}/*-apps-kgpg.png")
0235 ecm_add_app_icon(kgpg_SRCS ICONS ${ICONS_SRCS})
0236 
0237 kconfig_add_kcfg_files(kgpg_SRCS kgpgsettings.kcfgc )
0238 
0239 add_library(kgpg_lib STATIC ${kgpg_SRCS} ${kgpg_HDRS})
0240 add_executable(kgpg
0241     kgpg.qrc
0242     main.cpp
0243 )
0244 target_link_libraries(kgpg kgpg_lib)
0245 
0246 if (KGPG_DEBUG_TRANSACTIONS)
0247         set_property(SOURCE ${kgpg_transaction_SRCS} APPEND PROPERTY COMPILE_DEFINITIONS "KGPG_DEBUG_TRANSACTIONS")
0248 endif ()
0249 
0250 set_property(SOURCE main.cpp APPEND PROPERTY COMPILE_DEFINITIONS "KGPG_VERSION=\"${RELEASE_SERVICE_VERSION}\"")
0251 
0252 target_link_libraries(kgpg_lib
0253     KF6::Archive
0254     KF6::Codecs
0255     KF6::Contacts
0256     KF6::CoreAddons
0257     KF6::Crash
0258     KF6::DBusAddons
0259     KF6::I18n
0260     KF6::JobWidgets
0261     KF6::KIOCore
0262     KF6::KIOFileWidgets
0263     KF6::KIOWidgets
0264     KF6::Notifications
0265     KF6::Service
0266     KF6::TextWidgets
0267     KF6::XmlGui
0268     KF6::WidgetsAddons
0269     KF6::WindowSystem
0270     KF6::StatusNotifierItem
0271     KPim6::AkonadiContactWidgets
0272     Qt6::Core5Compat
0273     Qt6::PrintSupport
0274 )
0275 
0276 if (QT_MAJOR_VERSION STREQUAL "6")
0277     target_link_libraries(kgpg_lib
0278     )
0279 endif()
0280 if(BUILD_TESTING)
0281   add_subdirectory(tests)
0282 endif()
0283 
0284 install(TARGETS kgpg  ${KDE_INSTALL_TARGETS_DEFAULT_ARGS} )
0285 
0286 ########### install files ###############
0287 
0288 install( PROGRAMS org.kde.kgpg.desktop  DESTINATION ${KDE_INSTALL_APPDIR})
0289 install( FILES org.kde.kgpg.appdata.xml  DESTINATION ${KDE_INSTALL_METAINFODIR})
0290 install( FILES kgpg.kcfg  DESTINATION ${KDE_INSTALL_KCFGDIR})
0291 install( FILES org.kde.kgpg.desktop  DESTINATION ${KDE_INSTALL_AUTOSTARTDIR} )
0292 
0293 install( PROGRAMS kgpg_encryptfile.desktop kgpg_encryptfolder.desktop kgpg_viewdecrypted.desktop  DESTINATION ${KDE_INSTALL_DATADIR}/kio/servicemenus )
0294 install( FILES org.kde.kgpg.Key.xml DESTINATION ${KDE_INSTALL_DBUSINTERFACEDIR})
0295 
0296 ecm_install_icons(ICONS
0297     16-apps-kgpg.png
0298     22-apps-kgpg.png
0299     32-apps-kgpg.png
0300     48-apps-kgpg.png
0301     64-apps-kgpg.png
0302     128-apps-kgpg.png
0303     sc-apps-kgpg.svg
0304     DESTINATION ${KDE_INSTALL_ICONDIR}
0305     THEME hicolor
0306 )
0307 
0308 ecm_qt_install_logging_categories(EXPORT KGPG FILE kgpg.categories DESTINATION ${KDE_INSTALL_LOGGINGCATEGORIESDIR})
0309 ki18n_install(po)
0310 kdoctools_install(po)
0311 
0312 feature_summary(WHAT ALL INCLUDE_QUIET_PACKAGES FATAL_ON_MISSING_REQUIRED_PACKAGES)