2 kde_enable_exceptions()
4 add_definitions( -DQT_NO_CAST_FROM_ASCII )
5 add_definitions( -DQT_NO_CAST_TO_ASCII )
8 set(kleopatra_version 2.2.0)
9 set(kleopatra_release FALSE)
11 if(NOT kleopatra_release)
13 execute_process(COMMAND ${GIT_EXECUTABLE} log -1 --oneline --format=%h ${CMAKE_CURRENT_SOURCE_DIR}
14 WORKING_DIRECTORY ${kdepim_SOURCE_DIR}/kleopatra
15 OUTPUT_VARIABLE Kleopatra_WC_REVISION)
16 string(REGEX REPLACE "\n" "" Kleopatra_WC_REVISION "${Kleopatra_WC_REVISION}")
18 execute_process(COMMAND ${GIT_EXECUTABLE} log -1 --oneline --format=%ci ${CMAKE_CURRENT_SOURCE_DIR}
19 WORKING_DIRECTORY ${kdepim_SOURCE_DIR}/kleopatra
20 OUTPUT_VARIABLE Kleopatra_WC_LAST_CHANGED_DATE)
21 string(REGEX REPLACE " [-0-9:+ ]*\n" "" Kleopatra_WC_LAST_CHANGED_DATE "${Kleopatra_WC_LAST_CHANGED_DATE}")
23 set(kleopatra_version "${kleopatra_version}-git${Kleopatra_WC_REVISION} (${Kleopatra_WC_LAST_CHANGED_DATE})")
27 configure_file(${CMAKE_CURRENT_SOURCE_DIR}/version-kleopatra.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/version-kleopatra.h)
28 configure_file(${CMAKE_CURRENT_SOURCE_DIR}/config-kleopatra.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config-kleopatra.h)
31 ${CMAKE_CURRENT_BINARY_DIR}
32 ${CMAKE_CURRENT_BINARY_DIR}/libkleopatraclient/core/
37 if(USABLE_ASSUAN_FOUND)
39 include_directories(${ASSUAN2_INCLUDES})
41 include_directories(${ASSUAN_INCLUDES})
45 add_definitions(-D_ASSUAN_ONLY_GPG_ERRORS)
47 if(CMAKE_COMPILER_IS_GNUCXX)
48 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-missing-braces -Wno-parentheses -Wno-ignored-qualifiers")
51 add_subdirectory(pics)
52 add_subdirectory(conf)
54 if(USABLE_ASSUAN_FOUND)
55 # can't use ecm_optional_add_subdirectory here, since it's split
56 # off into ConfigureChecks.cmake..
57 add_subdirectory(libkleopatraclient)
60 add_subdirectory(kwatchgnupg)
63 add_subdirectory(tests)
66 add_subdirectory(kconf_update)
69 set(_kleopatra_extra_uiserver_SRCS uiserver/uiserver_win.cpp)
70 set(_kleopatra_extra_SRCS utils/gnupg-registry.c selftest/registrycheck.cpp)
72 set(_kleopatra_extra_uiserver_SRCS uiserver/uiserver_unix.cpp)
73 set(_kleopatra_extra_SRCS)
76 if(USABLE_ASSUAN_FOUND)
77 set(_kleopatra_uiserver_SRCS
78 uiserver/sessiondata.cpp
80 ${_kleopatra_extra_uiserver_SRCS}
81 uiserver/assuanserverconnection.cpp
82 uiserver/echocommand.cpp
83 uiserver/decryptverifycommandemailbase.cpp
84 uiserver/decryptverifycommandfilesbase.cpp
85 uiserver/signcommand.cpp
86 uiserver/signencryptfilescommand.cpp
87 uiserver/prepencryptcommand.cpp
88 uiserver/prepsigncommand.cpp
89 uiserver/encryptcommand.cpp
90 uiserver/selectcertificatecommand.cpp
91 uiserver/importfilescommand.cpp
92 uiserver/createchecksumscommand.cpp
93 uiserver/verifychecksumscommand.cpp
95 libkleopatraclient/core/command.cpp
96 libkleopatraclient/core/libkleopatraclientcore_debug.cpp
97 selftest/uiservercheck.cpp
99 set_source_files_properties(libkleopatraclient/core/command.cpp PROPERTIES SKIP_AUTOMOC TRUE)
101 qt5_generate_moc(libkleopatraclient/core/command_p.h "${CMAKE_CURRENT_BINARY_DIR}/libkleopatraclient/core/moc_command_p.cpp")
102 qt5_generate_moc(libkleopatraclient/core/command.h "${CMAKE_CURRENT_BINARY_DIR}/libkleopatraclient/core/moc_command.cpp")
104 list(APPEND _kleopatra_uiserver_SRCS
105 "${CMAKE_CURRENT_BINARY_DIR}/libkleopatraclient/core/moc_command_p.cpp"
106 "${CMAKE_CURRENT_BINARY_DIR}/libkleopatraclient/core/moc_command.cpp"
110 set(_kleopatra_uiserver_extra_libs ${ASSUAN2_LIBRARIES})
113 set(_kleopatra_uiserver_extra_libs ${ASSUAN_VANILLA_LIBRARIES})
115 set(_kleopatra_uiserver_extra_libs ${ASSUAN_PTHREAD_LIBRARIES})
119 if(HAVE_GPG_ERR_SOURCE_KLEO)
120 add_definitions(-DGPG_ERR_SOURCE_DEFAULT=GPG_ERR_SOURCE_KLEO)
122 add_definitions(-DGPG_ERR_SOURCE_DEFAULT=GPG_ERR_SOURCE_USER_1)
126 set(_kleopatra_uiserver_SRCS)
129 ki18n_wrap_ui(_kleopatra_uiserver_SRCS crypto/gui/signingcertificateselectionwidget.ui)
132 utils/gnupg-helper.cpp
133 utils/filesystemwatcher.cpp
135 utils/kdpipeiodevice.cpp
136 utils/kdlogtextwidget.cpp
137 utils/kdsignalblocker.cpp
141 utils/multivalidator.cpp
142 utils/progressmanager.cpp
143 utils/systemtrayicon.cpp
146 utils/path-helper.cpp
153 utils/iodevicelogger.cpp
155 utils/action_data.cpp
157 utils/archivedefinition.cpp
159 utils/clipboardmenu.cpp
161 selftest/selftest.cpp
162 selftest/enginecheck.cpp
163 selftest/gpgconfcheck.cpp
164 selftest/gpgagentcheck.cpp
165 selftest/libkleopatrarccheck.cpp
167 ${_kleopatra_extra_SRCS}
170 models/keylistmodel.cpp
171 models/keylistsortfilterproxymodel.cpp
172 models/subkeylistmodel.cpp
173 models/useridlistmodel.cpp
175 view/keylistcontroller.cpp
180 dialogs/certificateselectiondialog.cpp
181 dialogs/expirydialog.cpp
182 dialogs/lookupcertificatesdialog.cpp
183 dialogs/ownertrustdialog.cpp
184 dialogs/selftestdialog.cpp
185 dialogs/certifycertificatedialog.cpp
186 dialogs/exportsecretkeydialog.cpp
187 dialogs/adduseriddialog.cpp
188 dialogs/certificatedetailsdialog.cpp
189 dialogs/exportcertificatesdialog.cpp
190 dialogs/deletecertificatesdialog.cpp
191 dialogs/setinitialpindialog.cpp
193 crypto/controller.cpp
194 crypto/certificateresolver.cpp
198 crypto/taskcollection.cpp
199 crypto/decryptverifytask.cpp
200 crypto/decryptverifyemailcontroller.cpp
201 crypto/decryptverifyfilescontroller.cpp
202 crypto/encryptemailtask.cpp
203 crypto/encryptemailcontroller.cpp
204 crypto/newsignencryptemailcontroller.cpp
205 crypto/signencryptfilestask.cpp
206 crypto/signencryptfilescontroller.cpp
207 crypto/signemailtask.cpp
208 crypto/signemailcontroller.cpp
209 crypto/createchecksumscontroller.cpp
210 crypto/verifychecksumscontroller.cpp
212 crypto/gui/wizard.cpp
213 crypto/gui/wizardpage.cpp
215 crypto/gui/signingcertificateselectionwidget.cpp
216 crypto/gui/signingcertificateselectiondialog.cpp
218 crypto/gui/resultitemwidget.cpp
219 crypto/gui/resultlistwidget.cpp
220 crypto/gui/resultpage.cpp
222 crypto/gui/newresultpage.cpp
223 crypto/gui/newsignencryptfileswizard.cpp
225 crypto/gui/signencryptemailconflictdialog.cpp
227 crypto/gui/decryptverifyoperationwidget.cpp
228 crypto/gui/decryptverifyfileswizard.cpp
230 crypto/gui/objectspage.cpp
231 crypto/gui/resolverecipientspage.cpp
232 crypto/gui/signerresolvepage.cpp
233 crypto/gui/encryptemailwizard.cpp
234 crypto/gui/signemailwizard.cpp
235 crypto/gui/signencryptfileswizard.cpp
236 crypto/gui/signencryptwizard.cpp
238 crypto/gui/verifychecksumsdialog.cpp
241 commands/gnupgprocesscommand.cpp
242 commands/detailscommand.cpp
243 commands/exportcertificatecommand.cpp
244 commands/importcertificatescommand.cpp
245 commands/importcertificatefromfilecommand.cpp
246 commands/importcertificatefromclipboardcommand.cpp
247 commands/lookupcertificatescommand.cpp
248 commands/reloadkeyscommand.cpp
249 commands/refreshx509certscommand.cpp
250 commands/refreshopenpgpcertscommand.cpp
251 commands/deletecertificatescommand.cpp
252 commands/decryptverifyfilescommand.cpp
253 commands/signencryptfilescommand.cpp
254 commands/encryptclipboardcommand.cpp
255 commands/signclipboardcommand.cpp
256 commands/decryptverifyclipboardcommand.cpp
257 commands/clearcrlcachecommand.cpp
258 commands/dumpcrlcachecommand.cpp
259 commands/dumpcertificatecommand.cpp
260 commands/importcrlcommand.cpp
261 commands/changeexpirycommand.cpp
262 commands/changeownertrustcommand.cpp
263 commands/changeroottrustcommand.cpp
264 commands/changepassphrasecommand.cpp
265 commands/certifycertificatecommand.cpp
266 commands/selftestcommand.cpp
267 commands/exportsecretkeycommand.cpp
268 commands/exportopenpgpcertstoservercommand.cpp
269 commands/adduseridcommand.cpp
270 commands/newcertificatecommand.cpp
271 commands/setinitialpincommand.cpp
272 commands/learncardkeyscommand.cpp
273 commands/checksumcreatefilescommand.cpp
274 commands/checksumverifyfilescommand.cpp
276 ${_kleopatra_uiserver_files}
278 conf/configuredialog.cpp
280 newcertificatewizard/listwidget.cpp
281 newcertificatewizard/newcertificatewizard.cpp
283 smartcard/readerstatus.cpp
287 kleopatraapplication.cpp
291 ecm_qt_declare_logging_category(_kleopatra_SRCS HEADER kleopatra_debug.h IDENTIFIER KLEOPATRA_LOG CATEGORY_NAME log_kleopatra)
294 add_definitions(-DKLEO_MODEL_TEST)
295 set(_kleopatra_SRCS ${_kleopatra_SRCS} models/modeltest.cpp)
298 ki18n_wrap_ui(_kleopatra_SRCS
299 dialogs/certificationoptionswidget.ui
300 dialogs/expirydialog.ui
301 dialogs/lookupcertificatesdialog.ui
302 dialogs/ownertrustdialog.ui
303 dialogs/selectchecklevelwidget.ui
304 dialogs/selftestdialog.ui
305 dialogs/exportsecretkeydialog.ui
306 dialogs/adduseriddialog.ui
307 dialogs/certificatedetailsdialog.ui
308 dialogs/setinitialpindialog.ui
309 newcertificatewizard/listwidget.ui
310 newcertificatewizard/chooseprotocolpage.ui
311 newcertificatewizard/enterdetailspage.ui
312 newcertificatewizard/overviewpage.ui
313 newcertificatewizard/keycreationpage.ui
314 newcertificatewizard/resultpage.ui
315 newcertificatewizard/advancedsettingsdialog.ui
318 kconfig_add_kcfg_files(_kleopatra_SRCS
319 kcfg/tooltippreferences.kcfgc
320 kcfg/emailoperationspreferences.kcfgc
321 kcfg/fileoperationspreferences.kcfgc
322 kcfg/smimevalidationpreferences.kcfgc
326 add_definitions(-DKDEPIM_ONLY_KLEO -DKDEPIM_EXPORT=)
327 set(_kleopatra_libkdepim_SRCS
328 ${CMAKE_SOURCE_DIR}/libkdepim/progresswidget/progressmanager.cpp
329 ${CMAKE_SOURCE_DIR}/libkdepim/progresswidget/progressdialog.cpp
330 ${CMAKE_SOURCE_DIR}/libkdepim/progresswidget/ssllabel.cpp
331 ${CMAKE_SOURCE_DIR}/libkdepim/progresswidget/statusbarprogresswidget.cpp
332 ${CMAKE_SOURCE_DIR}/libkdepim/widgets/overlaywidget.cpp
334 set(_kleopatra_libkdepim_LIBS)
336 set(_kleopatra_libkdepim_SRCS)
337 set(_kleopatra_libkdepim_LIBS KF5::Libkdepim)
340 set(_kleopatra_mainwindow_SRCS mainwindow_desktop.cpp)
342 file(GLOB ICONS_SRCS "${CMAKE_CURRENT_SOURCE_DIR}/icons/*-apps-kleopatra.png")
343 ecm_add_app_icon(_kleopatra_mainwindow_SRCS ICONS ${ICONS_SRCS})
345 qt5_add_resources(_kleopatra_SRCS kleopatra.qrc)
347 add_executable(kleopatra_bin ${_kleopatra_SRCS} ${_kleopatra_mainwindow_SRCS} ${_kleopatra_uiserver_SRCS} ${_kleopatra_libkdepim_SRCS})
348 set_target_properties(kleopatra_bin PROPERTIES OUTPUT_NAME kleopatra)
350 target_link_libraries(kleopatra_bin
351 ${_kleopatra_extra_libs}
361 ${_kleopatra_uiserver_extra_libs}
362 ${_kleopatra_libkdepim_LIBS}
365 if(USABLE_ASSUAN_FOUND)
366 target_link_libraries(kleopatra_bin )
369 install(TARGETS kleopatra_bin ${KDE_INSTALL_TARGETS_DEFAULT_ARGS})
372 PROGRAMS data/org.kde.kleopatra.desktop data/kleopatra_import.desktop
373 DESTINATION ${KDE_INSTALL_APPDIR}
375 install(FILES data/kleopatra.appdata.xml DESTINATION ${KDE_INSTALL_METAINFODIR})
377 FILES data/kleopatra_signencryptfiles.desktop
378 data/kleopatra_signencryptfolders.desktop
379 data/kleopatra_decryptverifyfiles.desktop
380 data/kleopatra_decryptverifyfolders.desktop
381 DESTINATION ${KDE_INSTALL_KSERVICES5DIR}
384 add_subdirectory(icons)