some more work on collabsible albums. I think I will need to optimize the playlist...
[amarok.git] / src / CMakeLists.txt
blobf3c8ff09e533fa0fe371252ffa7e90aed7f168c3
2 FIND_PATH( KONQSIDEBAR_INCLUDE_DIR konqsidebarplugin.h
3   ${KDE4_INCLUDE_DIR}
4   /usr/include
5   /usr/local/include
8 MESSAGE(STATUS "reactivate konquesidebar when it is ported")
9 #if(KONQSIDEBAR_INCLUDE_DIR)
10 #   add_subdirectory( konquisidebar ) #disabling for now
11 #else(KONQSIDEBAR_INCLUDE_DIR)
12 #    MESSAGE(STATUS "You're missing the kdebase header files")
13 #    MESSAGE(STATUS "Konqueror sidebar will not be compiled.")
14 #endif(KONQSIDEBAR_INCLUDE_DIR)
16 ADD_DEFINITIONS(${TAGLIB_CFLAGS})
18 if(MP4V2_FOUND)
19     ADD_DEFINITIONS(-DHAVE_MP4V2)
20     include_directories( ${MP4V2_INCLUDE_DIR} )
21 endif(MP4V2_FOUND)
23 if(APPLE)
24     set(mac_SRCS app_mac.cpp)
25 endif(APPLE)
27 add_subdirectory( amarokcore )
28 add_subdirectory( data )
29 add_subdirectory( images )
30 add_subdirectory( scripts )
31 add_subdirectory( themes )
32 add_subdirectory( vis )
33 add_subdirectory( metadata )
34 add_subdirectory( engine )
35 add_subdirectory( mediadevice )
36 add_subdirectory( collectionscanner )
37 add_subdirectory( collection )
38 add_subdirectory( portabledevices )
39 add_subdirectory( strigi )
40 add_subdirectory( context )
41 add_subdirectory( playlistmanager )
43 OPTION(USE_SYSTEM_SQLITE "Use system sqlite instead of amarok's own copy" OFF)
45 if (USE_SYSTEM_SQLITE)
46     find_package(Sqlite REQUIRED)
47     set(libsqlite_SRCS )
48 else (USE_SYSTEM_SQLITE)
49     # Use our own copy
50     set(libsqlite_SRCS sqlite/sqlite3.c)
51 endif (USE_SYSTEM_SQLITE)
54 include_directories(
55     amarokcore
56     analyzers
57     context
58     context/widgets
59     configdialog
60     configdialog/dialogs
61     plugin
62     statusbar
63     mediadevice
64     portabledevices
65     servicebrowser
66     #servicebrowser/magnatunestore
67     ${CMAKE_CURRENT_SOURCE_DIR}
68     meta
69     collection
70     podcasts
71     widgets
72     playlistbrowser
73     ${CMAKE_CURRENT_BINARY_DIR} #for amarokconfig.h
74     ${KDE4_INCLUDE_DIR}
75     ${TAGLIB_INCLUDE_DIR}
76     ${QT_INCLUDES}
80 set(libamarokcore_SRCS
81     amarokcore/amarokdbushandler.cpp
82     amarokcore/crashhandler.cpp
85 qt4_add_dbus_adaptor( libamarokcore_SRCS amarokcore/org.kde.amarok.collection.xml amarokcore/amarokdbushandler.h Amarok::DbusCollectionHandler)
86 #qt4_add_dbus_adaptor( libamarokcore_SRCS amarokcore/org.kde.amarok.mediabrowser.xml amarokcore/amarokdbushandler.h Amarok::DbusMediaBrowserHandler)
87 qt4_add_dbus_adaptor( libamarokcore_SRCS amarokcore/org.kde.amarok.player.xml amarokcore/amarokdbushandler.h Amarok::DbusPlayerHandler)
88 qt4_add_dbus_adaptor( libamarokcore_SRCS amarokcore/org.kde.amarok.playlist.xml amarokcore/amarokdbushandler.h Amarok::DbusPlaylistHandler)
89 qt4_add_dbus_adaptor( libamarokcore_SRCS amarokcore/org.kde.amarok.playlistbrowser.xml amarokcore/amarokdbushandler.h Amarok::DbusPlaylistBrowserHandler)
90 qt4_add_dbus_adaptor( libamarokcore_SRCS amarokcore/org.kde.amarok.script.xml amarokcore/amarokdbushandler.h Amarok::DbusScriptHandler)
91 qt4_add_dbus_adaptor( libamarokcore_SRCS amarokcore/org.kde.amarok.context.xml amarokcore/amarokdbushandler.h Amarok::DbusContextHandler)
93 #####################################################################
94 # PLUGIN
95 #####################################################################
96 set(libplugin_SRCS
97     plugin/plugin.cpp
98     plugin/pluginconfig.cpp
101 #####################################################################
102 # SERVICEBROWSER
103 #####################################################################
104 set(libservicebrowser_SRCS
105     servicebrowser/servicebrowser.cpp
106     servicebrowser/servicebase.cpp
107     servicebrowser/servicemetabase.cpp
108     servicebrowser/servicecollection.cpp
109     servicebrowser/servicesqlquerymaker.cpp
110     servicebrowser/servicesqlcollection.cpp
111     servicebrowser/infoparserbase.cpp
112     servicebrowser/ServiceSqlRegistry.cpp
113     servicebrowser/ServiceAlbumCoverDownloader.cpp
114     servicebrowser/ServiceInfoProxy.cpp
115     servicebrowser/ServiceListModel.cpp
116     servicebrowser/ServiceListDelegate.cpp
117     servicebrowser/DynamicServiceQueryMaker.cpp
121 #####################################################################
122 # SCRIPTABLESERVICE
123 #####################################################################
124 set(libscriptableservice_SRCS
125     servicebrowser/scriptableservice/scriptableservicemanager.cpp
126     servicebrowser/scriptableservice/ScriptableServiceInfoParser.cpp
127     servicebrowser/scriptableservice/scriptableservice.cpp
128     servicebrowser/scriptableservice/ScriptableServiceCollection.cpp
131 #####################################################################
132 # SHOUTCASTSERVICE
133 #####################################################################
134 set(libshoutcastservice_SRCS
135     servicebrowser/shoutcast/ShoutcastService.cpp
136     servicebrowser/shoutcast/ShoutcastServiceCollection.cpp
137     servicebrowser/shoutcast/ShoutcastServiceQueryMaker.cpp
142 #####################################################################
143 # JAMENDOSERVICE
144 #####################################################################
145 set(libjamendoservice_SRCS
146     servicebrowser/jamendo/jamendoservice.cpp
147     servicebrowser/jamendo/JamendoMeta.cpp
148     servicebrowser/jamendo/jamendodatabasehandler.cpp
149     servicebrowser/jamendo/jamendoxmlparser.cpp
150     servicebrowser/jamendo/JamendoInfoParser.cpp
153 #####################################################################
154 # MP3TUNESERVICE
155 #####################################################################
156 set(libmp3tunesservice_SRCS
157     servicebrowser/mp3tunes/mp3tunesservice.cpp
158     servicebrowser/mp3tunes/Mp3tunesServiceCollection.cpp
159     servicebrowser/mp3tunes/Mp3tunesServiceQueryMaker.cpp
163 qt4_add_dbus_adaptor( libscriptableservice_SRCS servicebrowser/scriptableservice/org.kde.amarok.ScriptableServiceManager.xml servicebrowser/scriptableservice/scriptableservicemanager.h ScriptableServiceManager)
165 #####################################################################
166 # CONFIGDIALOG
167 #####################################################################
168 set(libconfigdialog_SRCS
169     configdialog/ConfigDialog.cpp
170     configdialog/ConfigDialogBase.cpp
171     configdialog/dialogs/AppearanceConfig.cpp
172     configdialog/dialogs/CollectionConfig.cpp
173     configdialog/dialogs/EngineConfig.cpp
174     configdialog/dialogs/GeneralConfig.cpp
175     configdialog/dialogs/LastfmConfig.cpp
176     #configdialog/dialogs/MediadeviceConfig.cpp
177     configdialog/dialogs/OsdConfig.cpp
178     configdialog/dialogs/PlaybackConfig.cpp
181 kde4_add_ui_files(libconfigdialog_SRCS
182     configdialog/dialogs/AppearanceConfig.ui
183     configdialog/dialogs/CollectionConfig.ui
184     configdialog/dialogs/GeneralConfig.ui
185     configdialog/dialogs/LastfmConfig.ui
186     configdialog/dialogs/OsdConfig.ui
187     configdialog/dialogs/PlaybackConfig.ui
190 #####################################################################
191 # MAGNATUNESTORE
192 #####################################################################
193 set(libmagnatunestore_SRCS
194     servicebrowser/magnatunestore/magnatuneinfoparser.cpp
195     servicebrowser/magnatunestore/MagnatuneStore.cpp
196     servicebrowser/magnatunestore/magnatunedownloaddialog.cpp
197     servicebrowser/magnatunestore/magnatunepurchasedialog.cpp
198     servicebrowser/magnatunestore/magnatunepurchasehandler.cpp
199     #servicebrowser/magnatunestore/magnatunetypes.cpp
200         servicebrowser/magnatunestore/MagnatuneMeta.cpp
201     servicebrowser/magnatunestore/magnatunexmlparser.cpp
202     servicebrowser/magnatunestore/magnatunedatabasehandler.cpp
203     servicebrowser/magnatunestore/magnatuneredownloaddialog.cpp
204     servicebrowser/magnatunestore/magnatuneredownloadhandler.cpp
205     servicebrowser/magnatunestore/magnatunedownloadinfo.cpp
206     servicebrowser/magnatunestore/magnatunealbumdownloader.cpp
209 kde4_add_ui3_files(libmagnatunestore_SRCS
210     servicebrowser/magnatunestore/magnatunedownloaddialogbase.ui
211     #servicebrowser/magnatunestore/magnatunepurchasedialogbase.ui
212     servicebrowser/magnatunestore/magnatuneredownloaddialogbase.ui
215 kde4_add_ui_files(libconfigdialog_SRCS
216     servicebrowser/magnatunestore/magnatunepurchasedialogbase.ui
219 #####################################################################
220 # COLLECTIONBROWSER
221 #####################################################################
222 set(libcollectionbrowser_SRCS
223     collectionbrowser/CollectionTreeView.cpp
224     collectionbrowser/CollectionTreeItemModelBase.cpp
225     collectionbrowser/CollectionTreeItemModel.cpp
226     collectionbrowser/SingleCollectionTreeItemModel.cpp
227     collectionbrowser/CollectionSortFilterProxyModel.cpp
228     collectionbrowser/CollectionTreeItem.cpp
229     collectionbrowser/CollectionWidget.cpp
232 #####################################################################
233 # ANALYZERS
234 #####################################################################
235 set(libanalyzers_SRCS
236     analyzers/analyzerbase.cpp
237     analyzers/analyzerfactory.cpp
238     analyzers/baranalyzer.cpp
239     analyzers/blockanalyzer.cpp
240     analyzers/glanalyzer.cpp
241     analyzers/glanalyzer2.cpp
242     analyzers/glanalyzer3.cpp
243     analyzers/sonogram.cpp
244 #    analyzers/turbine.cpp
245 #analyzers/boomanalyzer.cpp
248 #####################################################################
249 # STATUSBAR
250 #####################################################################
251 set(libstatusbar_SRCS
252     statusbar/statusBarBase.cpp
253     statusbar/statusbar.cpp
254     statusbar/overlayWidget.cpp
255     statusbar/popupMessage.cpp
256     statusbar/progressBar.cpp
257 #TODO: Port to new playlist
258 #    statusbar/queueLabel.cpp
259     statusbar/selectLabel.cpp
262 #####################################################################
263 # LAST.FM
264 #####################################################################
265 set(lastfm_SRCS
266     meta/lastfm/LastFmMeta.cpp
269 #####################################################################
270 # META
271 #####################################################################
272 set(meta_SRCS
273     meta/Capability.cpp
274     meta/EditCapability.cpp
275     meta/LastFmCapability.cpp
276     meta/meta.cpp
277     meta/proxy/MetaProxy.cpp
278     meta/file/File.cpp
279     meta/stream/Stream.cpp
280     meta/PlaylistFileSupport.cpp
281     meta/MetaUtility.cpp
284 #####################################################################
285 # COLLECTION
286 #####################################################################
287 set(collection_SRCS
288     collection/BlockingQuery.cpp
289     collection/Collection.cpp
290     collection/CollectionManager.cpp
291     collection/CollectionLocation.cpp
292     collection/MetaQueryBuilder.cpp
293     collection/QueryMaker.cpp
294     collection/support/MemoryMatcher.cpp
295     collection/support/MemoryQueryMaker.cpp
299 #####################################################################
300 # CONTEXT
301 #####################################################################
304 set( libcontextview_SRCS
305     context/Applet.cpp
306     context/Containment.cpp
307     context/ContextView.cpp
308     context/ContextObserver.cpp
309     context/ContextScene.cpp
310     context/ControlBox.cpp
311     context/CoverBling.cpp
312     context/DataEngineManager.cpp
313     context/LyricsManager.cpp
314     context/Svg.cpp
315     context/widgets/TextWidget.cpp
316     context/widgets/VBoxLayout.cpp
319 #####################################################################
320 # PODCASTS
321 #####################################################################
322 set(libpodcasts_SRCS
323     podcasts/PodcastCollection.cpp
324     podcasts/PodcastReader.cpp
327 #####################################################################
328 # PLAYLISTBROWSER
329 #####################################################################
330 set(libplaylistbrowser_SRCS
331     playlistbrowser/PlaylistBrowser.cpp
332     playlistbrowser/PodcastModel.cpp
335 #####################################################################
336 # QUEUEMANAGER
337 #####################################################################
338 set(libqueuemanager_SRCS
339     queuemanager/QueueManager.cpp
340     queuemanager/QueueModel.cpp
343 #####################################################################
344 # PLAYLISTMANAGER
345 #####################################################################
346 set(libplaylistmanager_SRCS
347     playlistmanager/PlaylistManager.cpp
350 #####################################################################
351 # PLAYLIST
352 #####################################################################
353 set(libplaylist_SRCS
354     playlist/PlaylistHeader.cpp
355     playlist/PlaylistItem.cpp
356     playlist/PlaylistModel.cpp
357     playlist/PlaylistWidget.cpp
358     playlist/RepeatTrackNavigator.cpp
359     playlist/StandardTrackNavigator.cpp
360     playlist/TrackNavigator.cpp
361     playlist/UndoCommands.cpp
362     playlist/PlaylistDropVis.cpp
363     playlist/PlaylistGraphicsItem.cpp
364     playlist/PlaylistGraphicsScene.cpp
365     playlist/PlaylistGraphicsView.cpp
366     playlist/PlaylistTextItem.cpp
367     playlist/PlaylistAlbumGroup.cpp
368     playlist/PlaylistClassicView.cpp
371 #####################################################################
372 # LIBAMAROK
373 #####################################################################
374 set(amaroklib_LIB_SRCS
375     ${libmagnatunestore_SRCS}
376     ${libshoutcastservice_SRCS}
377     ${libmp3tunesservice_SRCS}
378     ${libscriptableservice_SRCS}
379     ${libamarokcore_SRCS}
380     ${libanalyzers_SRCS}
381     ${libcontextview_SRCS}
382     ${libcollectionbrowser_SRCS}
383     ${libconfigdialog_SRCS}
384     ${libjamendoservice_SRCS}
385     ${libplaylist_SRCS}
386     ${libplugin_SRCS}
387     ${libpodcasts_SRCS}
388     ${libservicebrowser_SRCS}
389     ${libsqlite_SRCS}
390     ${libstatusbar_SRCS}
391     ${lastfm_SRCS}
392     ${meta_SRCS}
393     ${collection_SRCS}
394     ${mac_SRCS}
395     ${libplaylistbrowser_SRCS}
396     ${libqueuemanager_SRCS}
397     ${libplaylistmanager_SRCS}
398     actionclasses.cpp
399     AmarokMimeData.cpp
400     app.cpp
401     atomicstring.cpp
402     collectiondb.cpp
403     coverfetcher.cpp
404     covermanager.cpp
405     cuefile.cpp
406     dbsetup.ui.h
407     deletedialog.cpp
408     deviceconfiguredialog.cpp
409     directorylist.cpp
410     editfilterdialog.cpp
411     enginebase.cpp
412     enginecontroller.cpp
413     engineobserver.cpp
414     equalizergraph.cpp
415     equalizerpresetmanager.cpp
416     equalizersetup.cpp
417     expression.cpp
418     fht.cpp
419     #filebrowser.cpp
420     filebrowserwidget.cpp
421     hintlineedit.cpp
422     iconloader.cpp
423     k3bexporter.cpp
424     kbookmarkhandler.cpp
425     ktrm.cpp
426     lastfm.cpp
427     MainWindow.cpp
428     mediabrowser.cpp
429     MediaItem.cpp
430     MediaDevice.cpp
431     MediaDeviceCache.cpp
432     medium.cpp
433     metabundle.cpp
434     moodbar.cpp
435     mountpointmanager.cpp
436     osd.cpp
437     pixmapviewer.cpp
438     PlaylistHandler.cpp
439     pluginmanager.cpp
440     podcastsettings.cpp
441     prettypopupmenu.cpp
442     querybuilder.cpp
443     refreshimages.cpp
444     scriptmanager.cpp
445     scrobbler.cpp
446     Sidebar.h
447     smartplaylisteditor.cpp
448     socketserver.cpp
449     StarManager.cpp
450     Statistics.cpp
451     systray.cpp
452     tagdialog.cpp
453     tagguesser.cpp
454     threadmanager.cpp
455     tooltip.cpp
456     trackpickerdialog.cpp
457     tracktooltip.cpp
458     transferdialog.cpp
459     widgets/analyzerwidget.cpp
460     widgets/progressslider.cpp
461     widgets/searchwidget.cpp
462     widgets/SidebarWidget.cpp
463     widgets/sliderwidget.cpp
464     widgets/volumewidget.cpp
465     widgets/MainToolbar.cpp
466     xmlloader.cpp
467     xspfplaylist.cpp
471 set( amaroklib_DEPENDS "amarokplasma" )
473 kde4_add_kcfg_files(amaroklib_LIB_SRCS amarokcore/amarokconfig.kcfgc)
475 kde4_add_ui3_files(amaroklib_LIB_SRCS
476    dbsetup.ui
477 #   newdynamic.ui
478    collectionbrowser/OrganizeCollectionDialog.ui
479    podcastsettingsbase.ui
480    tagdialogbase.ui
481 #   tagguesserconfigdialog.ui
482    trackpickerdialogbase.ui
485 kde4_add_ui_files(amaroklib_LIB_SRCS
486     deletedialogbase.ui
487     scriptmanagerbase.ui
488     tagguesserconfigdialog.ui
491 kde4_add_library(amaroklib SHARED ${amaroklib_LIB_SRCS})
493 target_link_libraries(amaroklib
494     ${KDE4_KUTILS_LIBS} ${KDE4_KDEUI_LIBS} ${KDE4_KHTML_LIBS} ${KDE4_KNEWSTUFF_LIBS}
495     ${TAGLIB_LIBRARIES}
496     ${KDE4_KFILE_LIBS}
497     ${KDE4_KDE3SUPPORT_LIBS}
498     ${KDE4_THREADWEAVER_LIBRARIES}
499     ${QT_QTOPENGL_LIBRARY}
500     ${OPENGL_gl_LIBRARY}
501     ${OPENGL_glu_LIBRARY}
502     amarok_taglib
503     amarokplasma
506 if(NOT WIN32)
507     target_link_libraries(amaroklib dl)
508 endif(NOT WIN32)
510 if(USE_SYSTEM_SQLITE)
511     target_link_libraries(amaroklib ${SQLITE_LIBRARIES})
512 endif(USE_SYSTEM_SQLITE)
514 set_target_properties(amaroklib PROPERTIES VERSION 1.0.0 SOVERSION 1 )
515 install(TARGETS amaroklib DESTINATION ${LIB_INSTALL_DIR} )
518 #####################################################################
519 # AMAROK
520 #####################################################################
522 set(amarok_SRCS main.cpp )
524 if(Q_WS_MAC)
525     kde4_add_executable(Amarok ${amarok_SRCS})
526     target_link_libraries(Amarok ${KDE4_KDECORE_LIBS} amaroklib )
527     install(TARGETS Amarok DESTINATION ${BIN_INSTALL_DIR})
529 else(Q_WS_MAC)
531     kde4_add_executable(amarok ${amarok_SRCS})
532     target_link_libraries(amarok ${KDE4_KDECORE_LIBS} amaroklib )
533     install(TARGETS amarok DESTINATION ${BIN_INSTALL_DIR})
534 endif(Q_WS_MAC)
537 ########### install files ###############
539 install(FILES amarok.desktop DESTINATION ${XDG_APPS_INSTALL_DIR} )
540 install(FILES amarok.profile.xml DESTINATION ${DATA_INSTALL_DIR}/profiles )
541 install(FILES amarokrc DESTINATION ${CONFIG_INSTALL_DIR})
542 install(FILES amarok_plugin.desktop DESTINATION ${SERVICETYPES_INSTALL_DIR})
543 install(FILES amarok_append.desktop DESTINATION ${DATA_INSTALL_DIR}/konqueror/servicemenus)
545 install(FILES context/servicetypes/amarok_context_applet.desktop
546               context/servicetypes/amarok_data_engine.desktop
547               DESTINATION ${SERVICETYPES_INSTALL_DIR} )
549 kde4_install_icons( ${ICON_INSTALL_DIR} )