3 include(MacroOptionalAddSubdirectory)
5 set( kleopatra_version 2.1.0 )
6 set( kleopatra_release FALSE )
8 if (NOT kleopatra_release)
9 if (EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/.svn")
10 if ( NOT KdeSubversion_FOUND )
11 find_package( KdeSubversion )
12 endif ( NOT KdeSubversion_FOUND )
13 if ( KdeSubversion_FOUND )
14 KdeSubversion_WC_INFO( ${PROJECT_SOURCE_DIR} Kleopatra )
15 string( SUBSTRING "${Kleopatra_WC_LAST_CHANGED_DATE}" 0 10 Kleopatra_WC_LAST_CHANGED_DATE )
16 set( kleopatra_version "${kleopatra_version}-svn${Kleopatra_WC_REVISION} (${Kleopatra_WC_LAST_CHANGED_DATE})" )
17 endif ( KdeSubversion_FOUND )
18 endif (EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/.svn")
19 endif (NOT kleopatra_release)
20 configure_file(${CMAKE_CURRENT_SOURCE_DIR}/version-kleopatra.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/version-kleopatra.h )
21 configure_file(${CMAKE_CURRENT_SOURCE_DIR}/config-kleopatra.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config-kleopatra.h )
24 ${CMAKE_CURRENT_BINARY_DIR}
25 ${CMAKE_SOURCE_DIR}/libkleo
26 ${CMAKE_SOURCE_DIR}/libkdepim
30 if (USABLE_ASSUAN_FOUND)
32 include_directories(${ASSUAN2_INCLUDES})
34 include_directories(${ASSUAN_INCLUDES})
36 endif(USABLE_ASSUAN_FOUND)
37 add_definitions ( -DQT3_SUPPORT -DQT3_SUPPORT_WARNINGS -D_ASSUAN_ONLY_GPG_ERRORS -DQT_STL )
38 remove_definitions ( -DQT_NO_STL )
40 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${KDE4_ENABLE_EXCEPTIONS}")
41 if (GCC_IS_NEWER_THAN_4_3)
42 if (CMAKE_COMPILER_IS_GNUCXX)
43 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-missing-braces -Wno-parentheses -Wno-ignored-qualifiers" )
44 endif (CMAKE_COMPILER_IS_GNUCXX)
45 endif (GCC_IS_NEWER_THAN_4_3)
47 add_subdirectory( pics )
48 add_subdirectory( conf )
49 if ( USABLE_ASSUAN_FOUND AND BUILD_libkleopatraclient )
50 # can't use macro_optional_add_subdirectory here, since it's split
51 # off into ConfigureChecks.cmake..
52 add_subdirectory( libkleopatraclient )
53 endif ( USABLE_ASSUAN_FOUND AND BUILD_libkleopatraclient )
54 add_subdirectory( kgpgconf )
55 add_subdirectory( kwatchgnupg )
56 add_subdirectory( tests )
59 set( _kleopatra_extra_uiserver_SRCS
60 uiserver/uiserver_win.cpp
62 set( _kleopatra_extra_SRCS
63 utils/gnupg-registry.c
64 selftest/registrycheck.cpp
67 set( _kleopatra_extra_uiserver_SRCS
68 uiserver/uiserver_unix.cpp
70 set( _kleopatra_extra_SRCS
75 if ( USABLE_ASSUAN_FOUND )
76 add_definitions ( -DKLEOPATRACLIENT_NAMESPACE=KleopatraClientCopy -DKLEOPATRACLIENTCORE_EXPORT= )
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 selftest/uiservercheck.cpp
100 set( _kleopatra_uiserver_extra_libs ${ASSUAN2_LIBRARIES} )
101 else ( ASSUAN2_FOUND )
103 set( _kleopatra_uiserver_extra_libs ${ASSUAN_VANILLA_LIBRARIES} )
105 set( _kleopatra_uiserver_extra_libs ${ASSUAN_PTHREAD_LIBRARIES} )
107 endif ( ASSUAN2_FOUND )
109 if ( HAVE_GPG_ERR_SOURCE_KLEO )
110 add_definitions( -DGPG_ERR_SOURCE_DEFAULT=GPG_ERR_SOURCE_KLEO )
111 else( HAVE_GPG_ERR_SOURCE_KLEO )
112 add_definitions( -DGPG_ERR_SOURCE_DEFAULT=GPG_ERR_SOURCE_USER_1 )
113 endif( HAVE_GPG_ERR_SOURCE_KLEO )
115 else ( USABLE_ASSUAN_FOUND )
116 set(_kleopatra_uiserver_SRCS)
117 endif ( USABLE_ASSUAN_FOUND )
119 kde4_add_ui_files( _kleopatra_uiserver_SRCS
120 crypto/gui/signingcertificateselectionwidget.ui)
124 utils/gnupg-helper.cpp
125 utils/filesystemwatcher.cpp
127 utils/kdpipeiodevice.cpp
128 utils/kdlogtextwidget.cpp
129 utils/kdsignalblocker.cpp
133 utils/multivalidator.cpp
134 utils/progressmanager.cpp
135 utils/systemtrayicon.cpp
138 utils/path-helper.cpp
145 utils/iodevicelogger.cpp
147 utils/action_data.cpp
149 utils/archivedefinition.cpp
152 selftest/selftest.cpp
153 selftest/enginecheck.cpp
154 selftest/gpgconfcheck.cpp
155 selftest/gpgagentcheck.cpp
156 selftest/libkleopatrarccheck.cpp
158 smartcard/readerstatus.cpp
160 ${_kleopatra_extra_SRCS}
163 models/keylistmodel.cpp
164 models/keylistsortfilterproxymodel.cpp
165 models/subkeylistmodel.cpp
166 models/useridlistmodel.cpp
168 view/keylistcontroller.cpp
173 dialogs/certificateselectiondialog.cpp
174 dialogs/expirydialog.cpp
175 dialogs/lookupcertificatesdialog.cpp
176 dialogs/ownertrustdialog.cpp
177 dialogs/selftestdialog.cpp
178 dialogs/certifycertificatedialog.cpp
179 dialogs/exportsecretkeydialog.cpp
180 dialogs/adduseriddialog.cpp
181 dialogs/certificatedetailsdialog.cpp
182 dialogs/exportcertificatesdialog.cpp
183 dialogs/deletecertificatesdialog.cpp
184 dialogs/setinitialpindialog.cpp
186 crypto/controller.cpp
187 crypto/certificateresolver.cpp
191 crypto/taskcollection.cpp
192 crypto/decryptverifytask.cpp
193 crypto/decryptverifyemailcontroller.cpp
194 crypto/decryptverifyfilescontroller.cpp
195 crypto/encryptemailtask.cpp
196 crypto/encryptemailcontroller.cpp
197 crypto/newsignencryptemailcontroller.cpp
198 crypto/signencryptfilestask.cpp
199 crypto/signencryptfilescontroller.cpp
200 crypto/signemailtask.cpp
201 crypto/signemailcontroller.cpp
202 crypto/createchecksumscontroller.cpp
203 crypto/verifychecksumscontroller.cpp
205 crypto/gui/wizard.cpp
206 crypto/gui/wizardpage.cpp
208 crypto/gui/signingcertificateselectionwidget.cpp
209 crypto/gui/signingcertificateselectiondialog.cpp
211 crypto/gui/resultitemwidget.cpp
212 crypto/gui/resultlistwidget.cpp
213 crypto/gui/resultpage.cpp
215 crypto/gui/newresultpage.cpp
216 crypto/gui/newsignencryptfileswizard.cpp
218 crypto/gui/signencryptemailconflictdialog.cpp
220 crypto/gui/decryptverifyoperationwidget.cpp
221 crypto/gui/decryptverifyfileswizard.cpp
223 crypto/gui/objectspage.cpp
224 crypto/gui/resolverecipientspage.cpp
225 crypto/gui/signerresolvepage.cpp
226 crypto/gui/encryptemailwizard.cpp
227 crypto/gui/signemailwizard.cpp
228 crypto/gui/signencryptfileswizard.cpp
229 crypto/gui/signencryptwizard.cpp
231 crypto/gui/verifychecksumsdialog.cpp
234 commands/gnupgprocesscommand.cpp
235 commands/detailscommand.cpp
236 commands/exportcertificatecommand.cpp
237 commands/importcertificatescommand.cpp
238 commands/importcertificatefromfilecommand.cpp
239 commands/importcertificatefromclipboardcommand.cpp
240 commands/lookupcertificatescommand.cpp
241 commands/reloadkeyscommand.cpp
242 commands/refreshx509certscommand.cpp
243 commands/refreshopenpgpcertscommand.cpp
244 commands/deletecertificatescommand.cpp
245 commands/decryptverifyfilescommand.cpp
246 commands/signencryptfilescommand.cpp
247 commands/encryptclipboardcommand.cpp
248 commands/signclipboardcommand.cpp
249 commands/decryptverifyclipboardcommand.cpp
250 commands/clearcrlcachecommand.cpp
251 commands/dumpcrlcachecommand.cpp
252 commands/dumpcertificatecommand.cpp
253 commands/importcrlcommand.cpp
254 commands/changeexpirycommand.cpp
255 commands/changeownertrustcommand.cpp
256 commands/changeroottrustcommand.cpp
257 commands/changepassphrasecommand.cpp
258 commands/certifycertificatecommand.cpp
259 commands/selftestcommand.cpp
260 commands/exportsecretkeycommand.cpp
261 commands/exportopenpgpcertstoservercommand.cpp
262 commands/adduseridcommand.cpp
263 commands/newcertificatecommand.cpp
264 commands/setinitialpincommand.cpp
265 commands/learncardkeyscommand.cpp
267 ${_kleopatra_uiserver_files}
269 conf/configuredialog.cpp
271 newcertificatewizard/listwidget.cpp
272 newcertificatewizard/newcertificatewizard.cpp
276 kleopatraapplication.cpp
279 if ( KLEO_MODEL_TEST )
280 add_definitions( -DKLEO_MODEL_TEST )
281 set( _kleopatra_SRCS ${_kleopatra_SRCS} models/modeltest.cpp )
282 endif ( KLEO_MODEL_TEST )
284 kde4_add_ui_files( _kleopatra_SRCS
285 dialogs/certificationoptionswidget.ui
286 dialogs/expirydialog.ui
287 dialogs/lookupcertificatesdialog.ui
288 dialogs/ownertrustdialog.ui
289 dialogs/selectchecklevelwidget.ui
290 dialogs/selftestdialog.ui
291 dialogs/exportsecretkeydialog.ui
292 dialogs/adduseriddialog.ui
293 dialogs/certificatedetailsdialog.ui
294 dialogs/setinitialpindialog.ui
295 newcertificatewizard/listwidget.ui
296 newcertificatewizard/chooseprotocolpage.ui
297 newcertificatewizard/enterdetailspage.ui
298 newcertificatewizard/overviewpage.ui
299 newcertificatewizard/keycreationpage.ui
300 newcertificatewizard/resultpage.ui
301 newcertificatewizard/advancedsettingsdialog.ui
303 kde4_add_kcfg_files( _kleopatra_SRCS
304 kcfg/tooltippreferences.kcfgc
305 kcfg/emailoperationspreferences.kcfgc
306 kcfg/smimevalidationpreferences.kcfgc
310 if (KDEPIM_ONLY_KLEO)
311 add_definitions( -DKDEPIM_ONLY_KLEO -DKDEPIM_EXPORT= )
312 set( _kleopatra_libkdepim_SRCS
313 ../libkdepim/progressmanager.cpp
314 ../libkdepim/progressdialog.cpp
315 ../libkdepim/overlaywidget.cpp
316 ../libkdepim/ssllabel.cpp
317 ../libkdepim/statusbarprogresswidget.cpp
319 set( _kleopatra_libkdepim_LIBS )
320 else(KDEPIM_ONLY_KLEO)
321 set( _kleopatra_libkdepim_SRCS )
322 set( _kleopatra_libkdepim_LIBS kdepim )
323 endif(KDEPIM_ONLY_KLEO)
325 set( _kleopatra_mainwindow_SRCS
329 add_definitions ( -DKDE_DEFAULT_DEBUG_AREA=5151 )
332 kde4_add_app_icon(_kleopatra_mainwindow_SRCS "ox*-app-kleopatra.png")
333 kde4_add_executable(kleopatra_bin ${_kleopatra_SRCS} ${_kleopatra_mainwindow_SRCS} ${_kleopatra_uiserver_SRCS} ${_kleopatra_libkdepim_SRCS} )
334 set_target_properties(kleopatra_bin PROPERTIES OUTPUT_NAME kleopatra)
336 set( _kleopatra_extra_libs ${QT_QT3SUPPORT_LIBRARY} )
338 target_link_libraries(kleopatra_bin ${_kleopatra_extra_libs} kleo ${QGPGME_LIBRARIES} ${KDE4_KDEUI_LIBS} ${KDE4_KMIME_LIBRARY} ${KDE4_KCMUTILS_LIBS} ${_kleopatra_uiserver_extra_libs} ${_kleopatra_libkdepim_LIBS})
339 if ( USABLE_ASSUAN_FOUND )
340 target_link_libraries(kleopatra_bin ${QT_QTNETWORK_LIBRARY})
341 ENDIF ( USABLE_ASSUAN_FOUND )
343 install(TARGETS kleopatra_bin ${INSTALL_TARGETS_DEFAULT_ARGS})
346 ########### install files ###############
348 install( FILES kleopatra.desktop
349 kleopatra_import.desktop
350 DESTINATION ${XDG_APPS_INSTALL_DIR} )
352 install( FILES kleopatra_signencryptfiles.desktop
353 kleopatra_signencryptfolders.desktop
354 kleopatra_decryptverifyfiles.desktop
355 kleopatra_decryptverifyfolders.desktop
356 DESTINATION ${SERVICES_INSTALL_DIR} )
358 install( FILES kleopatra.rc DESTINATION ${DATA_INSTALL_DIR}/kleopatra )
360 kde4_install_icons( ${ICON_INSTALL_DIR} )