fix tricky regression noticed by Vyacheslav Tokarev on Google Reader.
[kdelibs.git] / kio / CMakeLists.txt
blob1609b9cd21657eda8219539ddec987f4b2b993c8
1 project(kio)
2 macro_optional_find_package(FAM)
4 if(OPENSSL_FOUND)
5    set(KSSL_HAVE_SSL 1)
6    include_directories(${OPENSSL_INCLUDE_DIR})
7 endif(OPENSSL_FOUND)
9 # This applies to all subdirs; let's put kio's dependencies (and own dirs) here, once and for all
10 include_directories(
11    ${CMAKE_CURRENT_SOURCE_DIR}/bookmarks
12    ${CMAKE_CURRENT_SOURCE_DIR}/kio
13    ${CMAKE_CURRENT_SOURCE_DIR}/kfile
14    ${CMAKE_CURRENT_SOURCE_DIR}/kssl
15    ${CMAKE_CURRENT_BINARY_DIR}/kio
16    ${CMAKE_CURRENT_BINARY_DIR}/kssl
17    ${CMAKE_CURRENT_BINARY_DIR}/kfile
18    ${CMAKE_CURRENT_BINARY_DIR}      # e.g. for observer_stub.h
19    ${KDE4_KDEUI_INCLUDES}
20    ${CMAKE_SOURCE_DIR}/solid
21    ${CMAKE_BINARY_DIR}/solid
22    ${KDE4_KDECORE_INCLUDES}/
23    ${STRIGI_INCLUDE_DIR}
24    ${ZLIB_INCLUDE_DIR}
27 macro_bool_to_01(FAM_FOUND HAVE_FAM)
29 check_include_files(sys/inotify.h SYS_INOTIFY_H_FOUND)
30 macro_bool_to_01(SYS_INOTIFY_H_FOUND HAVE_SYS_INOTIFY_H)
31 if(WIN32)
32  # currently for win32 only --> enable it for all in 4.1?
33  option(USE_QFILESYSTEMWATCHER "Use QFileSystemWatcher instead polling for KDirWatch" ON)
34  macro_bool_to_01(USE_QFILESYSTEMWATCHER HAVE_QFILESYSTEMWATCHER)
35 endif(WIN32)
37 configure_file(kio/config-kdirwatch.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/kio/config-kdirwatch.h )
38 configure_file(kio/config-strigi.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/kio/config-strigi.h )
40 configure_file(kssl/ksslconfig.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/kssl/ksslconfig.h )
41 #macro_additional_clean_files( ${CMAKE_CURRENT_BINARY_DIR}/kssl/ksslconfig.h )
43 add_subdirectory( kssl/kssl )
44 add_subdirectory( misc )
45 add_subdirectory( tests )
46 add_subdirectory( kfile/tests )
47 add_subdirectory( kio/dummyanalyzers )
49 set(kiocore_STAT_SRCS
50   kio/authinfo.cpp
51   kio/chmodjob.cpp
52   kio/connection.cpp
53   kio/copyjob.cpp
54   kio/dataprotocol.cpp
55   kio/dataslave.cpp
56   kio/davjob.cpp
57   kio/defaultviewadapter.cpp
58   kio/delegateanimationhandler.cpp
59   kio/deletejob.cpp
60   kio/directorysizejob.cpp
61   kio/filejob.cpp
62   kio/fileundomanager.cpp
63   kio/forwardingslavebase.cpp
64   kio/global.cpp
65   kio/imagefilter.cpp
66   kio/job.cpp
67   kio/jobuidelegate.cpp
68   kio/kacl.cpp
69   kio/kar.cpp
70   kio/karchive.cpp
71   kio/kbuildsycocaprogressdialog.cpp
72   kio/kdatatool.cpp
73   kio/kdbusservicestarter.cpp
74   kio/kdesktopfileactions.cpp
75   kio/kdirlister.cpp
76   kio/kdirmodel.cpp
77   kio/kdirnotify.cpp
78   kio/kdirwatch.cpp
79   kio/kdynamicjobtracker.cpp
80   kio/kemailsettings.cpp
81   kio/kfileitem.cpp
82   kio/kfileitemdelegate.cpp
83   kio/kfilemetainfo.cpp
84   kio/kfilemetainfoitem.cpp
85   kio/kfileshare.cpp
86   kio/kfilewriteplugin.cpp
87   kio/kimageio.cpp
88   kio/klimitediodevice.cpp
89   kio/kmimetypechooser.cpp
90   kio/kmimetyperesolver.cpp
91   kio/kmountpoint.cpp
92   kio/kprotocolmanager.cpp
93   kio/kremoteencoding.cpp
94   kio/krun.cpp
95   kio/kscan.cpp
96   kio/kshellcompletion.cpp
97   kio/kstatusbarofflineindicator.cpp
98   kio/ktar.cpp
99   kio/kurifilter.cpp
100   kio/kurlcompletion.cpp
101   kio/kurlpixmapprovider.cpp
102   kio/kzip.cpp
103   kio/metainfojob.cpp
104   kio/netaccess.cpp
105   kio/passworddialog.cpp
106   kio/paste.cpp
107   kio/pastedialog.cpp
108   kio/predicateproperties.cpp
109   kio/previewjob.cpp
110   kio/renamedialog.cpp
111   kio/renamedialogplugin.cpp
112   kio/scheduler.cpp
113   kio/sessiondata.cpp
114   kio/skipdialog.cpp
115   kio/slave.cpp
116   kio/slavebase.cpp
117   kio/slaveconfig.cpp
118   kio/slaveinterface.cpp
119   kio/tcpslavebase.cpp
120   kio/thumbcreator.cpp
121   kio/udsentry.cpp
122   kio/hostinfo.cpp
125 qt4_add_dbus_adaptor(kiocore_STAT_SRCS kio/org.kde.kio.FileUndoManager.xml fileundomanager_p.h KIO::FileUndoManagerPrivate fileundomanager_adaptor KIOFileUndoManagerAdaptor)
127 if(UNIX)
128    set(kiocore_STAT_SRCS ${kiocore_STAT_SRCS}
129        kio/kautomount.cpp
130        kio/knfsshare.cpp
131        kio/ksambashare.cpp
132    )
133 endif(UNIX)
135 if(WIN32)
136    set(kiocore_STAT_SRCS ${kiocore_STAT_SRCS}
137        kio/kdirwatch_win.cpp
138        kio/krun_win.cpp
139    )
140 endif(WIN32)
142 set(kbookmarks_STAT_SRCS
143   bookmarks/kbookmark.cc
144   bookmarks/kbookmarkimporter.cc
145   bookmarks/kbookmarkmanager.cc
146   bookmarks/kbookmarkmanageradaptor.cc
147   bookmarks/kbookmarkmenu.cc
148   bookmarks/konqbookmarkmenu.cc
149   bookmarks/kbookmarkimporter_crash.cc
150   bookmarks/kbookmarkimporter_opera.cc
151   bookmarks/kbookmarkimporter_ie.cc
152   bookmarks/kbookmarkimporter_ns.cc
153   bookmarks/kbookmarkdombuilder.cc
154   bookmarks/kbookmarkdialog.cc
157 set(kfile_STAT_SRCS
158   kfile/kabstractfilemodule.cpp
159   kfile/kacleditwidget.cpp
160   kfile/kdevicelistitem.cpp
161   kfile/kdevicelistmodel.cpp
162   kfile/kdiskfreespace.cpp
163   kfile/kdiskfreespaceinfo.cpp
164   kfile/kencodingfiledialog.cpp
165   kfile/kfile.cpp
166   kfile/kfiledialog.cpp
167   kfile/kfilemetainfowidget.cpp
168   kfile/kfilemetapreview.cpp
169   kfile/kicondialog.cpp
170   kfile/kimagefilepreview.cpp
171   kfile/kmetaprops.cpp
172   kfile/kopenwithdialog.cpp
173   kfile/kpreviewprops.cpp
174   kfile/kpreviewwidgetbase.cpp
175   kfile/kpropertiesdialog.cpp
176   kfile/krecentdirs.cpp
177   kfile/krecentdocument.cpp
178   kfile/kurlcombobox.cpp
179   kfile/kurlrequester.cpp
180   kfile/kurlrequesterdialog.cpp
182 if(NOT WIN32)
183   set(kfile_STAT_SRCS
184     ${kfile_STAT_SRCS}
185     kfile/kfilesharedialog.cpp
186     kfile/kfsprocess.cpp
187   )
188 endif(NOT WIN32)
189 qt4_add_resources(kfile_STAT_SRCS kfile/kacleditwidget.qrc)
191 # kio/kssl/Makefile.am: kssl
193 set(kssl_STAT_SRCS
194   kssl/kssl.cpp
195   kssl/ksslcertificatehome.cpp
196   kssl/ksslsettings.cpp
197   kssl/ksslcertificate.cpp
198   kssl/ksslconnectioninfo.cpp
199   kssl/ksslcertificatefactory.cpp
200   kssl/ksslcertificatemanager.cpp
201   kssl/ksslpeerinfo.cpp
202   kssl/ksslinfodialog.cpp
203   kssl/ksslcertificatebox.cpp
204   kssl/ksslcertdialog.cpp
205   kssl/ksslutils.cpp
206   kssl/kopenssl.cpp
207   kssl/ksslpkcs12.cpp
208   kssl/ksslcertchain.cpp
209   kssl/ksslkeygen.cpp
210   kssl/ksslx509v3.cpp
211   kssl/ksslsigners.cpp
212   kssl/ksslpkcs7.cpp
213   kssl/ksslpemcallback.cpp
214   kssl/ksslx509map.cpp
215   kssl/ksslsession.cpp
216   kssl/ksmimecrypto.cpp
217   kssl/ksslcsessioncache.cpp
221 ########### next target ###############
225 set(kio_LIB_SRCS
226    ${kiocore_STAT_SRCS}
227    ${kbookmarks_STAT_SRCS}
228    ${kfile_STAT_SRCS}
229    ${kssl_STAT_SRCS}
232 set(kio_LIB_PRIVATE_SRCS
233     kio/kfileshare_p.h
234     kio/krun_p.h
235     kio/connection_p.h
236     kio/slaveinterface_p.h
239 kde4_add_ui_files(kio_LIB_SRCS
240    kfile/kpropertiesdesktopadvbase.ui
241    kfile/kpropertiesdesktopbase.ui
242    kssl/keygenwizard.ui
243    kssl/keygenwizard2.ui
244    kssl/sslinfo.ui
245    kssl/certificateparty.ui
248 install(FILES kssl/ksslcertificatemanager.upd 
249               kssl/ksslcertificatemanager.upd.sh
250         DESTINATION  ${DATA_INSTALL_DIR}/kconf_update)
252 kde4_add_library(kio SHARED ${kio_LIB_SRCS})
254 target_link_libraries(kio ${KDE4_KDEUI_LIBS} ${ZLIB_LIBRARY} ${STRIGI_STREAMANALYZER_LIBRARY} ${STRIGI_STREAMS_LIBRARY} ${KDE4_SOLID_LIBS} ${QT_QTNETWORK_LIBRARY} ${QT_QTXML_LIBRARY} ${X11_LIBRARIES})
255 target_link_libraries(kio LINK_INTERFACE_LIBRARIES kdeui kdecore ${QT_QTNETWORK_LIBRARY} ${QT_QTXML_LIBRARY} ${QT_QTGUI_LIBRARY} )
257 set(SYS_INOTIFY_H_FOUND 0)
258 if(SYS_INOTIFY_H_FOUND)
259    macro_log_feature(FAM_FOUND "FAM" "File Alteration Monitor" "http://oss.sgi.com/projects/fam" FALSE "" "You have file alteration notification support built into your kernel, however you might consider installing FAM as it also supports NFS.")
260 else(SYS_INOTIFY_H_FOUND)
261    macro_log_feature(FAM_FOUND "FAM" "File Alteration Monitor" "http://oss.sgi.com/projects/fam" FALSE "" "Provides file alteration notification facilities using a separate service.")
262 endif(SYS_INOTIFY_H_FOUND)
264 if(FAM_FOUND)
265    include_directories(${FAM_INCLUDE_DIR})
266    target_link_libraries(kio ${FAM_LIBRARIES})
267 endif(FAM_FOUND)
269 if(ACL_FOUND)
270    target_link_libraries(kio ${ACL_LIBS})
271 endif(ACL_FOUND)
273 if(X11_Xrender_FOUND)
274    target_link_libraries(kio ${X11_Xrender_LIB})
275 endif(X11_Xrender_FOUND)
277 set_target_properties(kio PROPERTIES VERSION ${KDE_NON_GENERIC_LIB_VERSION} 
278                                      SOVERSION ${KDE_NON_GENERIC_LIB_SOVERSION} 
279                      )
282 ########### install files ###############
283 install(TARGETS kio EXPORT kdelibsLibraryTargets ${INSTALL_TARGETS_DEFAULT_ARGS})
285 install( PROGRAMS useragent.pl proxytype.pl  DESTINATION ${KCONF_UPDATE_INSTALL_DIR} )
288 install( FILES data.protocol  DESTINATION  ${SERVICES_INSTALL_DIR} )
289 install( FILES
290  application.desktop
291  kcmodule.desktop
292  kcmoduleinit.desktop
293  kdatatool.desktop
294  kfileplugin.desktop
295  kscan.desktop
296  kurifilterplugin.desktop
297  renamedialogplugin.desktop
298  kfile/kpropertiesdialogplugin.desktop
299  kio/kfilewrite.desktop
300 DESTINATION  ${SERVICETYPES_INSTALL_DIR} )
302 install( FILES kioslave.upd  DESTINATION  ${DATA_INSTALL_DIR}/kconf_update )
303 install(  FILES
304   kio/kio_export.h
305   kio/connection.h
306   kio/slaveinterface.h
307   kio/slave.h
308   kio/slaveconfig.h
309   kio/sessiondata.h
310   kio/global.h
311   kio/passworddialog.h
312   kio/netaccess.h
313   kio/job.h
314   kio/scheduler.h
315   kio/jobclasses.h
316   kio/copyjob.h
317   kio/deletejob.h
318   kio/jobuidelegate.h
319   kio/paste.h
320   kio/slavebase.h
321   kio/filejob.h
322   kio/fileundomanager.h
323   kio/tcpslavebase.h
324   kio/forwardingslavebase.h
325   kio/chmodjob.h
326   kio/authinfo.h
327   kio/ioslave_defaults.h
328   kio/http_slave_defaults.h
329   kio/previewjob.h
330   kio/thumbcreator.h
331   kio/metainfojob.h
332   kio/davjob.h
333   kio/directorysizejob.h
334   kio/renamedialog.h
335   kio/renamedialogplugin.h
336   kio/skipdialog.h
337   kio/udsentry.h
338   DESTINATION ${INCLUDE_INSTALL_DIR}/kio COMPONENT Devel)
340 if( NOT WIN32 )
341   install( FILES
342     kfile/kfilesharedialog.h
343     DESTINATION ${INCLUDE_INSTALL_DIR} COMPONENT Devel)
344 endif( NOT WIN32 )
346 install( FILES
347   kio/kacl.h
348   kio/kar.h
349   kio/karchive.h
350   kio/kautomount.h
351   kio/kbuildsycocaprogressdialog.h
352   kio/kdatatool.h
353   kio/kdbusservicestarter.h
354   kio/kdesktopfileactions.h
355   kio/kdirlister.h
356   kio/kdirmodel.h
357   kio/kdirnotify.h
358   kio/kdirwatch.h
359   kio/kemailsettings.h
360   kio/kfileitem.h
361   kio/kfileitemdelegate.h
362   kio/kfilemetainfo.h
363   kio/kfilemetainfoitem.h
364   kio/kfileshare.h
365   kio/kfilewriteplugin.h
366   kio/kimageio.h
367   kio/kmimetypechooser.h
368   kio/kmimetyperesolver.h
369   kio/kmountpoint.h
370   kio/knfsshare.h
371   kio/kprotocolmanager.h
372   kio/kremoteencoding.h
373   kio/krun.h
374   kio/ksambashare.h
375   kio/kscan.h
376   kio/kshellcompletion.h
377   kio/kstatusbarofflineindicator.h
378   kio/ktar.h
379   kio/kurifilter.h
380   kio/kurlcompletion.h
381   kio/kurlpixmapprovider.h
382   kio/kzip.h
383   kio/predicateproperties.h
384   kfile/kabstractfilemodule.h
385   kfile/kabstractfilewidget.h
386   kfile/kdevicelistmodel.h
387   kfile/kdiskfreespace.h
388   kfile/kdiskfreespaceinfo.h
389   kfile/kencodingfiledialog.h
390   kfile/kfile.h
391   kfile/kfiledialog.h
392   kfile/kicondialog.h
393   kfile/kimagefilepreview.h
394   kfile/kopenwithdialog.h
395   kfile/kpreviewwidgetbase.h
396   kfile/kpropertiesdialog.h
397   kfile/kpropsdialog.h
398   kfile/krecentdocument.h
399   kfile/kurlcombobox.h
400   kfile/kurlrequester.h
401   kfile/kurlrequesterdialog.h
402   bookmarks/kbookmark.h
403   bookmarks/kbookmarkexporter.h
404   bookmarks/kbookmarkimporter.h
405   bookmarks/kbookmarkmanager.h
406   bookmarks/kbookmarkmenu.h
407   bookmarks/kbookmarkimporter_crash.h
408   bookmarks/kbookmarkimporter_opera.h
409   bookmarks/kbookmarkimporter_ie.h
410   bookmarks/kbookmarkimporter_ns.h
411   bookmarks/kbookmarkdombuilder.h
412   bookmarks/konqbookmarkmenu.h
413   bookmarks/kbookmarkdialog.h
414   DESTINATION ${INCLUDE_INSTALL_DIR} COMPONENT Devel)
416 install(FILES
417    kio/org.kde.KDirNotify.xml
418    kio/org.kde.kio.FileUndoManager.xml
419    DESTINATION ${DBUS_INTERFACES_INSTALL_DIR})
422 install(FILES kio/accept-languages.codes DESTINATION ${CONFIG_INSTALL_DIR})