3 find_package(KDE4 REQUIRED)
6 # This seems to be needed for KPA to compile with KDE 4.0.0
7 set(INSTALL_TARGETS_DEFAULT_ARGS RUNTIME DESTINATION "${BIN_INSTALL_DIR}"
8 LIBRARY DESTINATION "${LIB_INSTALL_DIR}"
9 ARCHIVE DESTINATION "${LIB_INSTALL_DIR}" COMPONENT Devel )
11 ADD_DEFINITIONS(${QT_DEFINITIONS}
13 ${KDE4_ENABLE_EXCEPTIONS}
15 -DQT3_SUPPORT_WARNINGS
18 -DQT_NO_CAST_FROM_ASCII
20 # -DDB_RAWID_IS_PLAIN_INTEGER
23 INCLUDE_DIRECTORIES(${KDE4_INCLUDES}
27 find_package(JPEG REQUIRED)
29 INCLUDE_DIRECTORIES(${JPEG_INCLUDE_DIR})
32 macro_optional_find_package(Kipi)
33 macro_bool_to_01(KIPI_FOUND HASKIPI)
35 ADD_DEFINITIONS(${KIPI_DEFINITIONS})
36 INCLUDE_DIRECTORIES(BEFORE ${KIPI_INCLUDE_DIR})
39 macro_optional_find_package(Kdcraw)
40 macro_bool_to_01(KDCRAW_FOUND HAVE_KDCRAW)
42 ADD_DEFINITIONS(${KDCRAW_DEFINITIONS})
43 INCLUDE_DIRECTORIES(BEFORE ${KDCRAW_INCLUDE_DIR})
46 macro_optional_find_package(Exiv2)
47 macro_bool_to_01(EXIV2_FOUND HAVE_EXIV2)
49 # because macro_optional_find_package(Marble) dies and screams when there's no
51 SET(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules)
53 macro_optional_find_package(Marble)
54 macro_bool_to_01(MARBLE_FOUND HAVE_MARBLE)
56 INCLUDE_DIRECTORIES(${MARBLE_INCLUDE_DIR})
60 macro_optional_find_package(Nepomuk)
61 macro_bool_to_01(NEPOMUK_FOUND HAVE_NEPOMUK)
64 set(SQLDB_SUPPORT TRUE)
68 INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR})
71 set(libdatebar_SRCS ${CMAKE_CURRENT_SOURCE_DIR}/DateBar/DateBarWidget.cpp ${CMAKE_CURRENT_SOURCE_DIR}/DateBar/ViewHandler.cpp ${CMAKE_CURRENT_SOURCE_DIR}/DateBar/MouseHandler.cpp)
74 ${CMAKE_CURRENT_SOURCE_DIR}/Settings/SettingsData.cpp
75 ${CMAKE_CURRENT_SOURCE_DIR}/Settings/SettingsDialog.cpp
76 ${CMAKE_CURRENT_SOURCE_DIR}/Settings/ViewerSizeConfig.cpp
77 ${CMAKE_CURRENT_SOURCE_DIR}/Settings/CategoryItem.cpp
78 ${CMAKE_CURRENT_SOURCE_DIR}/Settings/CategoryPage.cpp
79 ${CMAKE_CURRENT_SOURCE_DIR}/Settings/SubCategoriesPage.cpp
80 ${CMAKE_CURRENT_SOURCE_DIR}/Settings/GeneralPage.cpp
81 ${CMAKE_CURRENT_SOURCE_DIR}/Settings/FileVersionDetectionPage.cpp
82 ${CMAKE_CURRENT_SOURCE_DIR}/Settings/ThumbnailsPage.cpp
83 ${CMAKE_CURRENT_SOURCE_DIR}/Settings/ViewerPage.cpp
84 ${CMAKE_CURRENT_SOURCE_DIR}/Settings/DatabaseBackendPage.cpp
85 ${CMAKE_CURRENT_SOURCE_DIR}/Settings/UntaggedGroupBox.cpp
89 ${CMAKE_CURRENT_SOURCE_DIR}/XMLDB/Database.cpp
90 ${CMAKE_CURRENT_SOURCE_DIR}/XMLDB/XMLCategoryCollection.cpp
91 ${CMAKE_CURRENT_SOURCE_DIR}/XMLDB/XMLCategory.cpp
92 ${CMAKE_CURRENT_SOURCE_DIR}/XMLDB/XMLImageDateCollection.cpp
93 ${CMAKE_CURRENT_SOURCE_DIR}/XMLDB/NumberedBackup.cpp
94 ${CMAKE_CURRENT_SOURCE_DIR}/XMLDB/FileReader.cpp
95 ${CMAKE_CURRENT_SOURCE_DIR}/XMLDB/FileWriter.cpp
96 ${CMAKE_CURRENT_SOURCE_DIR}/XMLDB/IdNameMapper.cpp)
98 set(libThumbnailView_SRCS
99 ${CMAKE_CURRENT_SOURCE_DIR}/ThumbnailView/ThumbnailRequest.cpp
100 ${CMAKE_CURRENT_SOURCE_DIR}/ThumbnailView/ThumbnailToolTip.cpp
101 ${CMAKE_CURRENT_SOURCE_DIR}/ThumbnailView/ThumbnailWidget.cpp
102 ${CMAKE_CURRENT_SOURCE_DIR}/ThumbnailView/ThumbnailCache.cpp
103 ${CMAKE_CURRENT_SOURCE_DIR}/ThumbnailView/GridResizeInteraction.cpp
104 ${CMAKE_CURRENT_SOURCE_DIR}/ThumbnailView/SelectionInteraction.cpp
105 ${CMAKE_CURRENT_SOURCE_DIR}/ThumbnailView/MouseTrackingInteraction.cpp
106 ${CMAKE_CURRENT_SOURCE_DIR}/ThumbnailView/ThumbnailBuilder.cpp
107 ${CMAKE_CURRENT_SOURCE_DIR}/ThumbnailView/ThumbnailPainter.cpp
108 ${CMAKE_CURRENT_SOURCE_DIR}/ThumbnailView/CellGeometry.cpp
109 ${CMAKE_CURRENT_SOURCE_DIR}/ThumbnailView/ThumbnailModel.cpp
110 ${CMAKE_CURRENT_SOURCE_DIR}/ThumbnailView/ThumbnailFacade.cpp
111 ${CMAKE_CURRENT_SOURCE_DIR}/ThumbnailView/ThumbnailComponent.cpp
112 ${CMAKE_CURRENT_SOURCE_DIR}/ThumbnailView/KeyboardEventHandler.cpp
113 ${CMAKE_CURRENT_SOURCE_DIR}/ThumbnailView/ThumbnailDND.cpp
119 ${CMAKE_CURRENT_SOURCE_DIR}/Plugins/Interface.cpp
120 ${CMAKE_CURRENT_SOURCE_DIR}/Plugins/ImageCollection.cpp
121 ${CMAKE_CURRENT_SOURCE_DIR}/Plugins/ImageInfo.cpp
122 ${CMAKE_CURRENT_SOURCE_DIR}/Plugins/CategoryImageCollection.cpp
123 ${CMAKE_CURRENT_SOURCE_DIR}/Plugins/ImageCollectionSelector.cpp
124 ${CMAKE_CURRENT_SOURCE_DIR}/Settings/PluginsPage.cpp
129 ${CMAKE_CURRENT_SOURCE_DIR}/Viewer/ViewerWidget.cpp
130 ${CMAKE_CURRENT_SOURCE_DIR}/Viewer/ImageDisplay.cpp
131 ${CMAKE_CURRENT_SOURCE_DIR}/Viewer/ViewHandler.cpp
132 ${CMAKE_CURRENT_SOURCE_DIR}/Viewer/SpeedDisplay.cpp
133 ${CMAKE_CURRENT_SOURCE_DIR}/Viewer/InfoBox.cpp
134 ${CMAKE_CURRENT_SOURCE_DIR}/Viewer/CategoryImageConfig.cpp
135 ${CMAKE_CURRENT_SOURCE_DIR}/Viewer/Display.cpp
136 ${CMAKE_CURRENT_SOURCE_DIR}/Viewer/VideoDisplay.cpp
137 ${CMAKE_CURRENT_SOURCE_DIR}/Viewer/TextDisplay.cpp
138 ${CMAKE_CURRENT_SOURCE_DIR}/Viewer/InfoBoxResizer.cpp
139 ${CMAKE_CURRENT_SOURCE_DIR}/Viewer/VisibleOptionsMenu.cpp)
141 set(libCategoryListView_SRCS
142 ${CMAKE_CURRENT_SOURCE_DIR}/CategoryListView/DragableListView.cpp
143 ${CMAKE_CURRENT_SOURCE_DIR}/CategoryListView/DragObject.cpp
144 ${CMAKE_CURRENT_SOURCE_DIR}/CategoryListView/CheckDropItem.cpp
145 ${CMAKE_CURRENT_SOURCE_DIR}/CategoryListView/DragItemInfo.cpp )
147 set(libHTMLGenerator_SRCS
148 ${CMAKE_CURRENT_SOURCE_DIR}/HTMLGenerator/HTMLDialog.cpp
149 ${CMAKE_CURRENT_SOURCE_DIR}/HTMLGenerator/Generator.cpp
150 ${CMAKE_CURRENT_SOURCE_DIR}/HTMLGenerator/Setup.cpp)
151 set(libUtilities_SRCS
152 ${CMAKE_CURRENT_SOURCE_DIR}/Utilities/ShowBusyCursor.cpp
153 ${CMAKE_CURRENT_SOURCE_DIR}/Utilities/List.cpp
154 ${CMAKE_CURRENT_SOURCE_DIR}/Utilities/Graph.cpp
155 ${CMAKE_CURRENT_SOURCE_DIR}/Utilities/UniqFilenameMapper.cpp
156 ${CMAKE_CURRENT_SOURCE_DIR}/Utilities/Util.cpp
157 ${CMAKE_CURRENT_SOURCE_DIR}/Utilities/BooleanGuard.cpp
158 ${CMAKE_CURRENT_SOURCE_DIR}/Utilities/Set.cpp
161 set(libMainWindow_SRCS
162 ${CMAKE_CURRENT_SOURCE_DIR}/MainWindow/DeleteDialog.cpp
163 ${CMAKE_CURRENT_SOURCE_DIR}/MainWindow/RunDialog.cpp
164 ${CMAKE_CURRENT_SOURCE_DIR}/MainWindow/FeatureDialog.cpp
165 ${CMAKE_CURRENT_SOURCE_DIR}/MainWindow/InvalidDateFinder.cpp
166 ${CMAKE_CURRENT_SOURCE_DIR}/MainWindow/TokenEditor.cpp
167 ${CMAKE_CURRENT_SOURCE_DIR}/MainWindow/WelcomeDialog.cpp
168 ${CMAKE_CURRENT_SOURCE_DIR}/MainWindow/Window.cpp
169 ${CMAKE_CURRENT_SOURCE_DIR}/MainWindow/SplashScreen.cpp
170 ${CMAKE_CURRENT_SOURCE_DIR}/MainWindow/ExternalPopup.cpp
171 ${CMAKE_CURRENT_SOURCE_DIR}/MainWindow/CategoryImagePopup.cpp
172 ${CMAKE_CURRENT_SOURCE_DIR}/MainWindow/SearchBar.cpp
173 ${CMAKE_CURRENT_SOURCE_DIR}/MainWindow/ImageCounter.cpp
174 ${CMAKE_CURRENT_SOURCE_DIR}/MainWindow/DirtyIndicator.cpp
175 ${CMAKE_CURRENT_SOURCE_DIR}/MainWindow/StatisticsDialog.cpp
176 ${CMAKE_CURRENT_SOURCE_DIR}/MainWindow/BreadcrumbViewer.cpp
179 set(libImageManager_SRCS
180 ${CMAKE_CURRENT_SOURCE_DIR}/ImageManager/ImageLoader.cpp
181 ${CMAKE_CURRENT_SOURCE_DIR}/ImageManager/Manager.cpp
182 ${CMAKE_CURRENT_SOURCE_DIR}/ImageManager/ImageRequest.cpp
183 ${CMAKE_CURRENT_SOURCE_DIR}/ImageManager/ImageClient.cpp
184 ${CMAKE_CURRENT_SOURCE_DIR}/ImageManager/ImageDecoder.cpp
185 ${CMAKE_CURRENT_SOURCE_DIR}/ImageManager/RawImageDecoder.cpp
186 ${CMAKE_CURRENT_SOURCE_DIR}/ImageManager/VideoManager.cpp
187 ${CMAKE_CURRENT_SOURCE_DIR}/ImageManager/RequestQueue.cpp
188 ${CMAKE_CURRENT_SOURCE_DIR}/ImageManager/ThumbnailStorage.cpp )
191 ${CMAKE_CURRENT_SOURCE_DIR}/DB/ImageInfo.cpp
192 ${CMAKE_CURRENT_SOURCE_DIR}/DB/Category.cpp
193 ${CMAKE_CURRENT_SOURCE_DIR}/DB/CategoryCollection.cpp
194 ${CMAKE_CURRENT_SOURCE_DIR}/DB/ImageDate.cpp
195 ${CMAKE_CURRENT_SOURCE_DIR}/DB/MD5Map.cpp
196 ${CMAKE_CURRENT_SOURCE_DIR}/DB/MemberMap.cpp
197 ${CMAKE_CURRENT_SOURCE_DIR}/DB/ImageInfoList.cpp
198 ${CMAKE_CURRENT_SOURCE_DIR}/DB/ImageDB.cpp
199 ${CMAKE_CURRENT_SOURCE_DIR}/DB/FileInfo.cpp
200 ${CMAKE_CURRENT_SOURCE_DIR}/DB/NewImageFinder.cpp
201 ${CMAKE_CURRENT_SOURCE_DIR}/DB/GroupCounter.cpp
202 ${CMAKE_CURRENT_SOURCE_DIR}/DB/CategoryMatcher.cpp
203 ${CMAKE_CURRENT_SOURCE_DIR}/DB/ImageSearchInfo.cpp
204 ${CMAKE_CURRENT_SOURCE_DIR}/DB/CategoryItem.cpp
205 ${CMAKE_CURRENT_SOURCE_DIR}/DB/ResultId.cpp
206 ${CMAKE_CURRENT_SOURCE_DIR}/DB/Result.cpp
207 ${CMAKE_CURRENT_SOURCE_DIR}/DB/NoOtherItemsCategoryMatcher.cpp
208 ${CMAKE_CURRENT_SOURCE_DIR}/DB/ContainerCategoryMatcher.cpp
209 ${CMAKE_CURRENT_SOURCE_DIR}/DB/ValueCategoryMatcher.cpp
210 ${CMAKE_CURRENT_SOURCE_DIR}/DB/OrCategoryMatcher.cpp
211 ${CMAKE_CURRENT_SOURCE_DIR}/DB/AndCategoryMatcher.cpp
214 set(libImportExport_SRCS
215 ${CMAKE_CURRENT_SOURCE_DIR}/ImportExport/Export.cpp
216 ${CMAKE_CURRENT_SOURCE_DIR}/ImportExport/Import.cpp
217 ${CMAKE_CURRENT_SOURCE_DIR}/ImportExport/ImportMatcher.cpp
218 ${CMAKE_CURRENT_SOURCE_DIR}/ImportExport/XMLHandler.cpp
219 ${CMAKE_CURRENT_SOURCE_DIR}/ImportExport/MiniViewer.cpp
220 ${CMAKE_CURRENT_SOURCE_DIR}/ImportExport/ImportHandler.cpp
221 ${CMAKE_CURRENT_SOURCE_DIR}/ImportExport/ImageRow.cpp
222 ${CMAKE_CURRENT_SOURCE_DIR}/ImportExport/ImportDialog.cpp
223 ${CMAKE_CURRENT_SOURCE_DIR}/ImportExport/ImportSettings.cpp
224 ${CMAKE_CURRENT_SOURCE_DIR}/ImportExport/KimFileReader.cpp
225 ${CMAKE_CURRENT_SOURCE_DIR}/ImportExport/MD5CheckPage.cpp
228 set(libAnnotationDialog_SRCS
229 ${CMAKE_CURRENT_SOURCE_DIR}/AnnotationDialog/Dialog.cpp
230 ${CMAKE_CURRENT_SOURCE_DIR}/AnnotationDialog/ListSelect.cpp
231 ${CMAKE_CURRENT_SOURCE_DIR}/AnnotationDialog/ImagePreview.cpp
232 ${CMAKE_CURRENT_SOURCE_DIR}/AnnotationDialog/ImagePreviewWidget.cpp
233 ${CMAKE_CURRENT_SOURCE_DIR}/AnnotationDialog/KDateEdit.cpp
234 ${CMAKE_CURRENT_SOURCE_DIR}/AnnotationDialog/CompletableLineEdit.cpp
235 ${CMAKE_CURRENT_SOURCE_DIR}/AnnotationDialog/ListViewItemHider.cpp
236 ${CMAKE_CURRENT_SOURCE_DIR}/AnnotationDialog/ShowSelectionOnlyManager.cpp
237 ${CMAKE_CURRENT_SOURCE_DIR}/AnnotationDialog/ShortCutManager.cpp
241 ${CMAKE_CURRENT_SOURCE_DIR}/Browser/BrowserWidget.cpp
242 ${CMAKE_CURRENT_SOURCE_DIR}/Browser/BrowserPage.cpp
243 ${CMAKE_CURRENT_SOURCE_DIR}/Browser/OverviewPage.cpp
244 ${CMAKE_CURRENT_SOURCE_DIR}/Browser/CategoryPage.cpp
245 ${CMAKE_CURRENT_SOURCE_DIR}/Browser/ImageViewPage.cpp
246 ${CMAKE_CURRENT_SOURCE_DIR}/Browser/TreeFilter.cpp
247 ${CMAKE_CURRENT_SOURCE_DIR}/Browser/Breadcrumb.cpp
248 ${CMAKE_CURRENT_SOURCE_DIR}/Browser/BreadcrumbList.cpp
249 ${CMAKE_CURRENT_SOURCE_DIR}/Browser/AbstractCategoryModel.cpp
250 ${CMAKE_CURRENT_SOURCE_DIR}/Browser/FlatCategoryModel.cpp
251 ${CMAKE_CURRENT_SOURCE_DIR}/Browser/TreeCategoryModel.cpp
252 ${CMAKE_CURRENT_SOURCE_DIR}/Browser/CenteringIconView.cpp
257 ${CMAKE_CURRENT_SOURCE_DIR}/Exif/Database.cpp
258 ${CMAKE_CURRENT_SOURCE_DIR}/Exif/InfoDialog.cpp
259 ${CMAKE_CURRENT_SOURCE_DIR}/Exif/SearchDialog.cpp
260 ${CMAKE_CURRENT_SOURCE_DIR}/Exif/SearchInfo.cpp
261 ${CMAKE_CURRENT_SOURCE_DIR}/Exif/TreeView.cpp
262 ${CMAKE_CURRENT_SOURCE_DIR}/Exif/Info.cpp
263 ${CMAKE_CURRENT_SOURCE_DIR}/Exif/RangeWidget.cpp
264 ${CMAKE_CURRENT_SOURCE_DIR}/Exif/DatabaseElement.cpp
265 ${CMAKE_CURRENT_SOURCE_DIR}/Exif/ReReadDialog.cpp )
267 add_subdirectory( images )
268 add_subdirectory( icons )
269 add_subdirectory( demo )
270 add_subdirectory( themes )
272 add_subdirectory( SQLDB )
278 # ${CMAKE_CURRENT_SOURCE_DIR}/Browser/ExifFolder.cpp
279 ${CMAKE_CURRENT_SOURCE_DIR}/Settings/ExifPage.cpp
283 ########### next target ###############
285 set(kphotoalbum_SRCS main.cpp ${libdatebar_SRCS} ${libSettings_SRCS} ${libsurvey_SRCS} ${libxmldb_SRCS} ${libThumbnailView_SRCS} ${libPlugins_SRCS} ${libViewer_SRCS} ${libCategoryListView_SRCS} ${libHTMLGenerator_SRCS} ${libMainWindow_SRCS} ${libImageManager_SRCS} ${libDB_SRCS} ${libImportExport_SRCS} ${libAnnotationDialog_SRCS} ${EXIV2_SRCS} ${libBrowser_SRCS})
287 kde4_add_executable(kphotoalbum ${kphotoalbum_SRCS})
289 kde4_add_library(Utilities STATIC ${libUtilities_SRCS})
291 # Internal components
293 target_link_libraries(kphotoalbum SQLDB)
295 target_link_libraries(kphotoalbum Utilities)
297 # External components
298 target_link_libraries(kphotoalbum ${KDE4_KDE3SUPPORT_LIBS} ${KDE4_KIO_LIBS} ${JPEG_LIBRARY} kmediaplayer ${KDE4_PHONON_LIBS})
301 target_link_libraries(kphotoalbum ${KIPI_LIBRARIES})
305 target_link_libraries(kphotoalbum ${KDCRAW_LIBRARIES})
309 target_link_libraries(kphotoalbum ${EXIV2_LIBRARIES} )
313 target_link_libraries(kphotoalbum ${MARBLE_LIBRARIES} )
317 target_link_libraries(kphotoalbum ${NEPOMUK_LIBRARIES} )
318 ADD_DEFINITIONS(${NEPOMUK_DEFINITIONS})
319 INCLUDE_DIRECTORIES(${NEPOMUK_INCLUDE_DIR})
322 install(TARGETS kphotoalbum ${INSTALL_TARGETS_DEFAULT_ARGS})
325 ########### install files ###############
327 install( FILES kphotoalbum.desktop kphotoalbum-import.desktop DESTINATION ${XDG_APPS_INSTALL_DIR} )
328 install( FILES kphotoalbumrc DESTINATION ${CONFIG_INSTALL_DIR} )
329 install( FILES tips DESTINATION ${DATA_INSTALL_DIR}/kphotoalbum )
330 install( FILES kphotoalbumui.rc default-setup default-layout.xml DESTINATION ${DATA_INSTALL_DIR}/kphotoalbum )
333 configure_file(config-kpa-kdcraw.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config-kpa-kdcraw.h)
334 configure_file(config-kpa-exiv2.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config-kpa-exiv2.h)
335 configure_file(config-kpa-kipi.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config-kpa-kipi.h)
336 configure_file(config-kpa-sqldb.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config-kpa-sqldb.h)
337 configure_file(config-kpa-marble.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config-kpa-marble.h)
338 configure_file(config-kpa-nepomuk.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config-kpa-nepomuk.h)