1 add_definitions(-DTRANSLATION_DOMAIN=\"kmail\")
3 qt5_generate_dbus_interface(kmkernel.h org.kde.kmail.kmail.xml OPTIONS -a)
4 qt5_generate_dbus_interface(editor/kmcomposerwin.h org.kde.kmail.mailcomposer.xml OPTIONS -a)
6 add_custom_target(kmail_xml ALL
7 DEPENDS ${kmail_BINARY_DIR}/src/org.kde.kmail.kmail.xml
8 DEPENDS ${kmail_BINARY_DIR}/src/org.kde.kmail.mailcomposer.xml
9 COMMENT "Helper target for XML stuff. The Kontact plugin, KOrganizer and others depend on it."
13 ${CMAKE_CURRENT_BINARY_DIR}
16 ${AKONADI_INCLUDE_DIR}
22 add_subdirectory(about)
23 add_subdirectory(pics)
24 add_subdirectory(icons)
25 add_subdirectory(kcm_kpimidentities)
26 add_subdirectory(kconf_update)
27 add_subdirectory(kontactplugin)
29 ########### kmailprivate ###############
32 set(kmailprivate_attributes_LIB_SRCS
33 attributes/taskattribute.cpp
36 set(kmailprivate_folderarchive_LIB_SRCS
37 folderarchive/folderarchiveaccountinfo.cpp
38 folderarchive/folderarchiveutil.cpp
39 folderarchive/folderarchivecache.cpp
40 folderarchive/folderarchiveagentcheckcollection.cpp
41 folderarchive/folderarchivemanager.cpp
42 folderarchive/folderarchiveagentjob.cpp
44 set(kmailprivate_collectionpage_LIB_SRCS
45 collectionpage/collectiontemplatespage.cpp
46 collectionpage/collectionmaintenancepage.cpp
47 collectionpage/collectionviewpage.cpp
48 collectionpage/collectionquotapage.cpp
49 collectionpage/collectionquotawidget.cpp
50 collectionpage/collectionmailinglistpage.cpp
51 collectionpage/collectionshortcutpage.cpp
53 set(kmailprivate_configuredialog_LIB_SRCS
54 configuredialog/configagentdelegate.cpp
55 configuredialog/configuredialoglistview.cpp
56 configuredialog/configuredialog.cpp
57 configuredialog/configuredialog_p.cpp
58 configuredialog/configuremiscpage.cpp
59 configuredialog/configuresecuritypage.cpp
60 configuredialog/configurecomposerpage.cpp
61 configuredialog/configureappearancepage.cpp
62 configuredialog/configureaccountpage.cpp
63 configuredialog/colorlistbox.cpp
64 configuredialog/configureagentswidget.cpp
65 configuredialog/configureagents/configureagentlistmodel.cpp
66 configuredialog/configureagents/configureagentlistdelegate.cpp
67 configuredialog/configureagents/configureagentlistview.cpp
68 configuredialog/configureagents/configureagentitem.cpp
71 set(kmailprivate_searchdialog_LIB_SRCS
72 searchdialog/kmsearchmessagemodel.cpp
73 searchdialog/kmsearchfilterproxymodel.cpp
74 searchdialog/searchpatternwarning.cpp
75 searchdialog/kmailsearchpatternedit.cpp
76 searchdialog/searchwindow.cpp
77 searchdialog/searchdescriptionattribute.cpp
78 searchdialog/incompleteindexdialog.cpp
80 set(kmailprivate_identity_LIB_SRCS
81 identity/identitylistview.cpp
82 identity/identitydialog.cpp
83 identity/xfaceconfigurator.cpp
84 identity/identitypage.cpp
85 identity/newidentitydialog.cpp
86 identity/identityeditvcarddialog.cpp
87 identity/identityaddvcarddialog.cpp
88 identity/identityinvalidfolder.cpp
89 identity/identityfolderrequester.cpp
91 set(kmailprivate_editor_LIB_SRCS
92 editor/widgets/snippetwidget.cpp
93 editor/kmcomposereditorng.cpp
95 editor/codec/codecaction.cpp
96 editor/codec/codecmanager.cpp
97 editor/kmcomposerwin.cpp
98 editor/attachment/attachmentcontroller.cpp
99 editor/attachment/attachmentview.cpp
100 editor/widgets/cryptostateindicatorwidget.cpp
101 editor/validatesendmailshortcut.cpp
102 editor/kmcomposerglobalaction.cpp
105 set(kmailprivate_warningwidgets_LIB_SRCS
106 warningwidgets/externaleditorwarning.cpp
107 warningwidgets/attachmentmissingwarning.cpp
109 set(kmailprivate_editor_potentialphishingemail_SRCS
110 editor/potentialphishingemail/potentialphishingemailwarning.cpp
111 editor/potentialphishingemail/potentialphishingemailjob.cpp
112 editor/potentialphishingemail/potentialphishingdetaildialog.cpp
113 editor/potentialphishingemail/potentialphishingdetailwidget.cpp
115 set(kmailprivate_dialogs_LIB_SRCS
116 dialog/archivefolderdialog.cpp
117 dialog/addemailtoexistingcontactdialog.cpp
120 set(kmailprivate_job_LIB_SRCS
121 job/addressvalidationjob.cpp
122 job/createnewcontactjob.cpp
123 job/addemailtoexistingcontactjob.cpp
124 job/createtaskjob.cpp
126 job/removeduplicatemailjob.cpp
127 job/createfollowupreminderonexistingmessagejob.cpp
128 job/removecollectionjob.cpp
129 job/saveasfilejob.cpp
130 job/markallmessagesasreadinfolderandsubfolderjob.cpp
131 job/removeduplicatemessageinfolderandsubfolderjob.cpp
134 set(kmailprivate_widgets_LIB_SRCS
135 widgets/collectionpane.cpp
136 widgets/vacationscriptindicatorwidget.cpp
137 widgets/displaymessageformatactionmenu.cpp
138 widgets/statusbarlabeltoggledstate.cpp
139 widgets/kactionmenutransport.cpp
140 widgets/kactionmenuaccount.cpp
142 set(kmailprivate_tag_LIB_SRCS
143 tag/tagactionmanager.cpp
144 tag/tagselectdialog.cpp
148 set(kmailprivate_plugininterface_LIB_SRCS
149 plugininterface/kmailplugininterface.cpp
152 set(kmailprivate_editor_plugininterface_LIB_SRCS
153 editor/plugininterface/kmailplugineditormanagerinterface.cpp
154 editor/plugininterface/kmailplugineditorcheckbeforesendmanagerinterface.cpp
157 set(kmailprivate_checkindexing_LIB_SRCS
158 search/checkindexingmanager.cpp
159 search/checkindexingjob.cpp
162 set(kmail_common_SRCS)
163 ecm_qt_declare_logging_category(kmail_common_SRCS HEADER kmail_debug.h IDENTIFIER KMAIL_LOG CATEGORY_NAME log_kmail)
164 set(kmailprivate_LIB_SRCS
167 settings/kmailsettings.cpp
181 foldershortcutactionmanager.cpp
182 kmlaunchexternalcomponent.cpp
183 manageshowcollectionproperties.cpp
184 kmmigrateapplication.cpp
185 ${kmailprivate_attributes_LIB_SRCS}
186 ${kmailprivate_tag_LIB_SRCS}
187 ${kmailprivate_job_LIB_SRCS}
188 ${kmailprivate_widgets_LIB_SRCS}
189 ${kmailprivate_dialogs_LIB_SRCS}
190 ${kmailprivate_warningwidgets_LIB_SRCS}
191 ${kmailprivate_folderarchive_LIB_SRCS}
192 ${kmailprivate_collectionpage_LIB_SRCS}
193 ${kmailprivate_configuredialog_LIB_SRCS}
194 ${kmailprivate_searchdialog_LIB_SRCS}
195 ${kmailprivate_identity_LIB_SRCS}
196 ${kmailprivate_editor_LIB_SRCS}
197 ${kmailprivate_editor_potentialphishingemail_SRCS}
198 ${kmailprivate_plugininterface_LIB_SRCS}
199 ${kmailprivate_editor_plugininterface_LIB_SRCS}
200 ${kmailprivate_checkindexing_LIB_SRCS}
203 qt5_generate_dbus_interface(editor/kmcomposerwin.h org.kde.kmail.mailcomposer.xml OPTIONS -a)
204 qt5_add_dbus_adaptor(kmailprivate_LIB_SRCS
205 ${kmail_BINARY_DIR}/src/org.kde.kmail.mailcomposer.xml editor/kmcomposerwin.h KMComposerWin
208 qt5_add_dbus_adaptor(kmailprivate_LIB_SRCS
209 ${kmail_BINARY_DIR}/src/org.kde.kmail.kmail.xml kmkernel.h KMKernel
211 qt5_add_dbus_adaptor(kmailprivate_LIB_SRCS
212 ${MAILTRANSPORT_DBUS_SERVICE} mailserviceimpl.h
213 KMail::MailServiceImpl
216 qt5_add_dbus_interfaces(kmailprivate_LIB_SRCS
217 ${kmail_BINARY_DIR}/src/org.kde.kmail.kmail.xml
219 qt5_add_dbus_interfaces(kmailprivate_LIB_SRCS
220 ../agents/archivemailagent/org.freedesktop.Akonadi.ArchiveMailAgent.xml
222 qt5_add_dbus_interfaces(kmailprivate_LIB_SRCS
223 ../agents/sendlateragent/org.freedesktop.Akonadi.SendLaterAgent.xml
226 qt5_add_dbus_interfaces(kmailprivate_LIB_SRCS
227 dbusinterface/org.freedesktop.Akonadi.NewMailNotifier.xml
230 qt5_add_dbus_interfaces(kmailprivate_LIB_SRCS
231 ../agents/followupreminderagent/org.freedesktop.Akonadi.FollowUpReminder.xml
234 qt5_add_dbus_interfaces(kmailprivate_LIB_SRCS
235 ../agents/mailfilteragent/org.freedesktop.Akonadi.MailFilterAgent.xml
238 ki18n_wrap_ui(kmailprivate_LIB_SRCS
239 ui/composercryptoconfiguration.ui
240 ui/warningconfiguration.ui
241 ui/smimeconfiguration.ui
242 ui/miscpagemaintab.ui
243 ui/securitypagegeneraltab.ui
244 ui/securitypagemdntab.ui
246 ui/accountspagereceivingtab.ui
248 ui/incompleteindexdialog.ui
251 # KCFG files. The main kmail.kcfg is configured by CMake and put
252 # in the build directory.
254 if(KDEPIM_ENTERPRISE_BUILD)
255 set(WARN_TOOMANY_RECIPIENTS_DEFAULT true)
257 set(WARN_TOOMANY_RECIPIENTS_DEFAULT false)
260 configure_file(settings/kmail.kcfg.cmake ${CMAKE_CURRENT_BINARY_DIR}/kmail.kcfg)
262 kconfig_add_kcfg_files(kmailprivate_LIB_SRCS
263 settings/globalsettings_kmail.kcfgc
264 editor/custommimeheader/custommimeheader.kcfgc
268 add_library(kmailprivate ${kmailprivate_LIB_SRCS})
269 generate_export_header(kmailprivate BASE_NAME kmail)
270 target_link_libraries(kmailprivate
284 KF5::IdentityManagement
302 KF5::FollowupReminder
307 KF5::AkonadiSearchDebug
308 KF5::AkonadiSearchPIM
311 target_include_directories(kmailprivate PUBLIC $<TARGET_PROPERTY:KF5::MessageList,INTERFACE_INCLUDE_DIRECTORIES>)
312 target_include_directories(kmailprivate PUBLIC $<TARGET_PROPERTY:KF5::MessageViewer,INTERFACE_INCLUDE_DIRECTORIES>)
313 target_include_directories(kmailprivate PUBLIC $<TARGET_PROPERTY:KF5::MailCommon,INTERFACE_INCLUDE_DIRECTORIES>)
315 set_target_properties(kmailprivate
316 PROPERTIES VERSION ${KDEPIM_LIB_VERSION} SOVERSION ${KDEPIM_LIB_SOVERSION}
319 ########### kcm_kmail ###############
320 set(kcm_kmail_PART_SRCS kcm_kmail.cpp )
321 add_library(kcm_kmail MODULE ${kcm_kmail_PART_SRCS})
322 target_link_libraries(kcm_kmail kmailprivate KF5::KCMUtils KF5::Completion KF5::I18n KF5::TextWidgets)
324 ########### kmailpart ###############
326 set(kmailpart_PART_SRCS kmail_part.cpp ${kmail_common_SRCS})
327 qt5_generate_dbus_interface(kmail_part.h org.kde.kmail.kmailpart.xml OPTIONS -a)
328 qt5_add_dbus_adaptor(kmailpart_PART_SRCS
329 ${kmail_BINARY_DIR}/src/org.kde.kmail.kmailpart.xml kmail_part.h KMailPart
331 qt5_add_dbus_interfaces(kmailpart_PART_SRCS ${kmail_BINARY_DIR}/src/org.kde.kmail.kmailpart.xml)
332 add_library(kmailpart MODULE ${kmailpart_PART_SRCS})
334 target_link_libraries(kmailpart
344 ########### KMail executable ###############
346 set(kmail_SRCS main.cpp ${kmail_common_SRCS})
347 file(GLOB ICONS_SRCS "${CMAKE_CURRENT_SOURCE_DIR}/icons/*-apps-kmail.png")
348 ecm_add_app_icon(kmail_SRCS ICONS ${ICONS_SRCS})
349 add_executable(kmail ${kmail_SRCS})
350 target_link_libraries(kmail
351 KF5::KontactInterface
361 add_subdirectory(autotests)
362 add_subdirectory(tests)
363 add_subdirectory(folderarchive/autotests/)
364 add_subdirectory(editor/potentialphishingemail/autotests)
366 ########### install files ###############
368 install(TARGETS kmailprivate ${KDE_INSTALL_TARGETS_DEFAULT_ARGS} LIBRARY NAMELINK_SKIP)
370 install(TARGETS kmail ${KDE_INSTALL_TARGETS_DEFAULT_ARGS})
372 install(PROGRAMS data/org.kde.kmail.desktop data/kmail_view.desktop DESTINATION ${KDE_INSTALL_APPDIR})
374 ${CMAKE_CURRENT_BINARY_DIR}/kmail.kcfg
375 DESTINATION ${KDE_INSTALL_KCFGDIR}
377 install(FILES data/org.kde.kmail.appdata.xml DESTINATION ${KDE_INSTALL_METAINFODIR})
379 data/kmail_config_misc.desktop
380 data/kmail_config_appearance.desktop
381 data/kmail_config_identity.desktop
382 data/kmail_config_accounts.desktop
383 data/kmail_config_composer.desktop
384 data/kmail_config_security.desktop
385 DESTINATION ${KDE_INSTALL_KSERVICES5DIR}
392 DESTINATION ${KDE_INSTALL_KXMLGUI5DIR}/kmail2
394 install( FILES data/kmail2.notifyrc DESTINATION ${KDE_INSTALL_KNOTIFY5RCDIR} )
395 install(FILES data/dbusmail.desktop DESTINATION ${KDE_INSTALL_KSERVICETYPES5DIR})
399 DESTINATION ${KDE_INSTALL_PLUGINDIR}
402 ${kmail_BINARY_DIR}/src/org.kde.kmail.kmailpart.xml
403 ${kmail_BINARY_DIR}/src/org.kde.kmail.kmail.xml
404 DESTINATION ${KDE_INSTALL_DBUSINTERFACEDIR}
407 install( FILES data/kmail_addattachmentservicemenu.desktop DESTINATION
408 ${KDE_INSTALL_KSERVICES5DIR}/ServiceMenus)