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)