'Pluginize' Ampache
[amarok.git] / src / CMakeLists.txt
blob472877317ac2627084c14fec9cb5d0fe3e45c098
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( strigi )
39 add_subdirectory( context )
40 add_subdirectory( playlistmanager )
41 add_subdirectory( servicebrowser )
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     servicebrowser
65     #servicebrowser/magnatunestore
66     ${CMAKE_CURRENT_SOURCE_DIR}
67     meta
68     collection
69     podcasts
70     widgets
71     playlistbrowser
72     ${CMAKE_CURRENT_BINARY_DIR} #for amarokconfig.h
73     ${KDE4_INCLUDE_DIR}
74     ${TAGLIB_INCLUDE_DIR}
75     ${QT_INCLUDES}
79 set(libamarokcore_SRCS
80     amarokcore/amarokdbushandler.cpp
81     amarokcore/crashhandler.cpp
84 qt4_add_dbus_adaptor( libamarokcore_SRCS amarokcore/org.kde.amarok.collection.xml amarokcore/amarokdbushandler.h Amarok::DbusCollectionHandler)
85 #qt4_add_dbus_adaptor( libamarokcore_SRCS amarokcore/org.kde.amarok.mediabrowser.xml amarokcore/amarokdbushandler.h Amarok::DbusMediaBrowserHandler)
86 qt4_add_dbus_adaptor( libamarokcore_SRCS amarokcore/org.kde.amarok.player.xml amarokcore/amarokdbushandler.h Amarok::DbusPlayerHandler)
87 qt4_add_dbus_adaptor( libamarokcore_SRCS amarokcore/org.kde.amarok.playlist.xml amarokcore/amarokdbushandler.h Amarok::DbusPlaylistHandler)
88 qt4_add_dbus_adaptor( libamarokcore_SRCS amarokcore/org.kde.amarok.playlistbrowser.xml amarokcore/amarokdbushandler.h Amarok::DbusPlaylistBrowserHandler)
89 qt4_add_dbus_adaptor( libamarokcore_SRCS amarokcore/org.kde.amarok.script.xml amarokcore/amarokdbushandler.h Amarok::DbusScriptHandler)
90 qt4_add_dbus_adaptor( libamarokcore_SRCS amarokcore/org.kde.amarok.context.xml amarokcore/amarokdbushandler.h Amarok::DbusContextHandler)
92 #####################################################################
93 # PLUGIN
94 #####################################################################
95 set(libplugin_SRCS
96     plugin/plugin.cpp
97     plugin/pluginconfig.cpp
100 #####################################################################
101 # SERVICEBROWSER
102 #####################################################################
103 set(libservicebrowser_SRCS
104     servicebrowser/servicebrowser.cpp
105     servicebrowser/servicebase.cpp
106     servicebrowser/ServicePluginManager.cpp
107     servicebrowser/servicemetabase.cpp
108     servicebrowser/servicecollection.cpp
109     servicebrowser/servicesqlquerymaker.cpp
110     servicebrowser/servicesqlcollection.cpp
111     servicebrowser/ServiceDynamicCollection.cpp
112     servicebrowser/infoparserbase.cpp
113     servicebrowser/ServiceSqlRegistry.cpp
114     servicebrowser/ServiceAlbumCoverDownloader.cpp
115     servicebrowser/ServiceInfoProxy.cpp
116     servicebrowser/ServiceListModel.cpp
117     servicebrowser/ServiceListDelegate.cpp
118     servicebrowser/DynamicServiceQueryMaker.cpp
119     servicebrowser/ServiceCustomActionsCapability.cpp
123 #####################################################################
124 # SCRIPTABLESERVICE
125 #####################################################################
126 set(libscriptableservice_SRCS
127     servicebrowser/scriptableservice/scriptableservicemanager.cpp
128     servicebrowser/scriptableservice/ScriptableServiceInfoParser.cpp
129     servicebrowser/scriptableservice/scriptableservice.cpp
130     servicebrowser/scriptableservice/ScriptableServiceCollection.cpp
131     servicebrowser/scriptableservice/DynamicScriptableServiceMeta.cpp
132     servicebrowser/scriptableservice/DynamicScriptableServiceCollection.cpp
133     servicebrowser/scriptableservice/DynamicScriptableQueryMaker.cpp
136 #####################################################################
137 # SHOUTCASTSERVICE
138 #####################################################################
139 set(libshoutcastservice_SRCS
140     servicebrowser/shoutcast/ShoutcastService.cpp
141     servicebrowser/shoutcast/ShoutcastServiceCollection.cpp
142     servicebrowser/shoutcast/ShoutcastServiceQueryMaker.cpp
147 #####################################################################
148 # MP3TUNESERVICE
149 #####################################################################
150 set(libmp3tunesservice_SRCS
151     servicebrowser/mp3tunes/mp3tunesservice.cpp
152     servicebrowser/mp3tunes/Mp3tunesServiceCollection.cpp
153     servicebrowser/mp3tunes/Mp3tunesServiceQueryMaker.cpp
154     servicebrowser/mp3tunes/Mp3tunesMeta.cpp
159 qt4_add_dbus_adaptor( libscriptableservice_SRCS servicebrowser/scriptableservice/org.kde.amarok.ScriptableServiceManager.xml servicebrowser/scriptableservice/scriptableservicemanager.h ScriptableServiceManager)
161 #####################################################################
162 # CONFIGDIALOG
163 #####################################################################
164 set(libconfigdialog_SRCS
165     configdialog/ConfigDialog.cpp
166     configdialog/ConfigDialogBase.cpp
167     configdialog/dialogs/AppearanceConfig.cpp
168     configdialog/dialogs/CollectionConfig.cpp
169     configdialog/dialogs/EngineConfig.cpp
170     configdialog/dialogs/GeneralConfig.cpp
171     configdialog/dialogs/LastfmConfig.cpp
172     configdialog/dialogs/MediadeviceConfig.cpp
173     configdialog/dialogs/OsdConfig.cpp
174     configdialog/dialogs/PlaybackConfig.cpp
177 kde4_add_ui_files(libconfigdialog_SRCS
178     configdialog/dialogs/AppearanceConfig.ui
179     configdialog/dialogs/CollectionConfig.ui
180     configdialog/dialogs/GeneralConfig.ui
181     configdialog/dialogs/LastfmConfig.ui
182     configdialog/dialogs/OsdConfig.ui
183     configdialog/dialogs/PlaybackConfig.ui
186 kde4_add_ui_files(libconfigdialog_SRCS
187     servicebrowser/magnatunestore/magnatunepurchasedialogbase.ui
190 #####################################################################
191 # COLLECTIONBROWSER
192 #####################################################################
193 set(libcollectionbrowser_SRCS
194     collectionbrowser/CollectionTreeView.cpp
195     collectionbrowser/CollectionTreeItemModelBase.cpp
196     collectionbrowser/CollectionTreeItemModel.cpp
197     collectionbrowser/SingleCollectionTreeItemModel.cpp
198     collectionbrowser/CollectionSortFilterProxyModel.cpp
199     collectionbrowser/CollectionTreeItem.cpp
200     collectionbrowser/CollectionWidget.cpp
203 #####################################################################
204 # ANALYZERS
205 #####################################################################
206 set(libanalyzers_SRCS
207     analyzers/analyzerbase.cpp
208     analyzers/analyzerfactory.cpp
209     analyzers/baranalyzer.cpp
210     analyzers/blockanalyzer.cpp
211     analyzers/glanalyzer.cpp
212     analyzers/glanalyzer2.cpp
213     analyzers/glanalyzer3.cpp
214     analyzers/sonogram.cpp
215 #    analyzers/turbine.cpp
216 #analyzers/boomanalyzer.cpp
219 #####################################################################
220 # STATUSBAR
221 #####################################################################
222 set(libstatusbar_SRCS
223     statusbar/statusBarBase.cpp
224     statusbar/ContextStatusBar.cpp
225     statusbar/PlaylistStatusBar.cpp
226     statusbar/overlayWidget.cpp
227     statusbar/popupMessage.cpp
228     statusbar/progressBar.cpp
229     statusbar/StatusBarMessageLabel.cpp
230 #TODO: Port to new playlist
231 #    statusbar/queueLabel.cpp
232     statusbar/selectLabel.cpp
235 #####################################################################
236 # LAST.FM
237 #####################################################################
238 set(lastfm_SRCS
239     meta/lastfm/LastFmMeta.cpp
242 #####################################################################
243 # META
244 #####################################################################
245 set(meta_SRCS
246     meta/Capability.cpp
247     meta/EditCapability.cpp
248     meta/LastFmCapability.cpp
249     meta/CustomActionsCapability.cpp
250     meta/Meta.cpp
251     meta/proxy/MetaProxy.cpp
252     meta/file/File.cpp
253     meta/stream/Stream.cpp
254     meta/PlaylistFileSupport.cpp
255     meta/MetaUtility.cpp
258 #####################################################################
259 # COLLECTION
260 #####################################################################
261 set(collection_SRCS
262     collection/BlockingQuery.cpp
263     collection/Collection.cpp
264     collection/CollectionManager.cpp
265     collection/CollectionLocation.cpp
266     collection/MetaQueryBuilder.cpp
267     collection/QueryMaker.cpp
268     collection/support/MemoryMatcher.cpp
269     collection/support/MemoryQueryMaker.cpp
273 #####################################################################
274 # CONTEXT
275 #####################################################################
278 set( libcontextview_SRCS
279     context/Applet.cpp
280     context/Containment.cpp
281     context/ContextView.cpp
282     context/ContextObserver.cpp
283     context/ContextScene.cpp
284     context/CoverBling.cpp
285     context/DataEngineManager.cpp
286     context/LyricsManager.cpp
287     context/Svg.cpp
288     context/widgets/TextWidget.cpp
289     context/widgets/VBoxLayout.cpp
292 #####################################################################
293 # PODCASTS
294 #####################################################################
295 set(libpodcasts_SRCS
296     podcasts/PodcastCollection.cpp
297     podcasts/PodcastReader.cpp
300 #####################################################################
301 # PLAYLISTBROWSER
302 #####################################################################
303 set(libplaylistbrowser_SRCS
304     playlistbrowser/PlaylistBrowser.cpp
305     playlistbrowser/PodcastModel.cpp
308 #####################################################################
309 # QUEUEMANAGER
310 #####################################################################
311 set(libqueuemanager_SRCS
312     queuemanager/QueueManager.cpp
313     queuemanager/QueueModel.cpp
316 #####################################################################
317 # PLAYLISTMANAGER
318 #####################################################################
319 set(libplaylistmanager_SRCS
320     playlistmanager/PlaylistManager.cpp
323 #####################################################################
324 # PLAYLIST
325 #####################################################################
326 set(libplaylist_SRCS
327     playlist/PlaylistHeader.cpp
328     playlist/PlaylistItem.cpp
329     playlist/PlaylistModel.cpp
330     playlist/PlaylistWidget.cpp
331     playlist/RepeatTrackNavigator.cpp
332     playlist/StandardTrackNavigator.cpp
333     playlist/TrackNavigator.cpp
334     playlist/UndoCommands.cpp
335     playlist/PlaylistDropVis.cpp
336     playlist/PlaylistGraphicsItem.cpp
337     playlist/PlaylistGraphicsScene.cpp
338     playlist/PlaylistGraphicsView.cpp
339     playlist/PlaylistTextItem.cpp
340     playlist/PlaylistAlbumGroup.cpp
341     playlist/PlaylistClassicView.cpp
344 #####################################################################
345 # LIBAMAROK
346 #####################################################################
347 set(amaroklib_LIB_SRCS
348     ${libshoutcastservice_SRCS}
349     ${libmp3tunesservice_SRCS}
350     ${libampacheservice_SRCS}
351     ${libscriptableservice_SRCS}
352     ${libamarokcore_SRCS}
353     ${libanalyzers_SRCS}
354     ${libcontextview_SRCS}
355     ${libcollectionbrowser_SRCS}
356     ${libconfigdialog_SRCS}
357     ${libplaylist_SRCS}
358     ${libplugin_SRCS}
359     ${libpodcasts_SRCS}
360     ${libservicebrowser_SRCS}
361     ${libsqlite_SRCS}
362     ${libstatusbar_SRCS}
363     ${lastfm_SRCS}
364     ${meta_SRCS}
365     ${collection_SRCS}
366     ${mac_SRCS}
367     ${libplaylistbrowser_SRCS}
368     ${libqueuemanager_SRCS}
369     ${libplaylistmanager_SRCS}
370     actionclasses.cpp
371     AmarokMimeData.cpp
372     app.cpp
373     atomicstring.cpp
374     collectiondb.cpp
375     coverfetcher.cpp
376     covermanager.cpp
377     cuefile.cpp
378     dbsetup.ui.h
379     deletedialog.cpp
380     deviceconfiguredialog.cpp
381     directorylist.cpp
382     editfilterdialog.cpp
383     enginebase.cpp
384     enginecontroller.cpp
385     engineobserver.cpp
386     equalizergraph.cpp
387     equalizerpresetmanager.cpp
388     equalizersetup.cpp
389     expression.cpp
390     fht.cpp
391     #filebrowser.cpp
392     filebrowserwidget.cpp
393     hintlineedit.cpp
394     IconLoader.cpp
395     k3bexporter.cpp
396     kbookmarkhandler.cpp
397     ktrm.cpp
398     lastfm.cpp
399     MainWindow.cpp
400     mediabrowser.cpp
401     MediaItem.cpp
402     MediaDevice.cpp
403     MediaDeviceCache.cpp
404     MediaDevicePluginManager.cpp
405     medium.cpp
406     metabundle.cpp
407     moodbar.cpp
408     mountpointmanager.cpp
409     osd.cpp
410     PixmapViewer.cpp
411     PlaylistHandler.cpp
412     pluginmanager.cpp
413     podcastsettings.cpp
414     prettypopupmenu.cpp
415     querybuilder.cpp
416     refreshimages.cpp
417     scriptmanager.cpp
418     scrobbler.cpp
419     Sidebar.h
420     SmartPlaylistEditor.cpp
421     socketserver.cpp
422     StarManager.cpp
423     Statistics.cpp
424     systray.cpp
425     tagdialog.cpp
426     TagGuesser.cpp
427     threadmanager.cpp
428     tooltip.cpp
429     trackpickerdialog.cpp
430     tracktooltip.cpp
431     transferdialog.cpp
432     widgets/analyzerwidget.cpp
433     widgets/progressslider.cpp
434     widgets/searchwidget.cpp
435     widgets/SidebarWidget.cpp
436     widgets/sliderwidget.cpp
437     widgets/volumewidget.cpp
438     widgets/MainToolbar.cpp
439     xmlloader.cpp
440     xspfplaylist.cpp
444 set( amaroklib_DEPENDS "amarokplasma" )
446 kde4_add_kcfg_files(amaroklib_LIB_SRCS amarokcore/amarokconfig.kcfgc)
448 kde4_add_ui3_files(amaroklib_LIB_SRCS
449    dbsetup.ui
450 #   newdynamic.ui
451    collectionbrowser/OrganizeCollectionDialog.ui
452    podcastsettingsbase.ui
453    tagdialogbase.ui
454 #   tagguesserconfigdialog.ui
455    trackpickerdialogbase.ui
458 kde4_add_ui_files(amaroklib_LIB_SRCS
459     deletedialogbase.ui
460     scriptmanagerbase.ui
461     tagguesserconfigdialog.ui
464 kde4_add_library(amaroklib SHARED ${amaroklib_LIB_SRCS})
466 target_link_libraries(amaroklib
467     ${KDE4_KUTILS_LIBS} ${KDE4_KDEUI_LIBS} ${KDE4_KHTML_LIBS} ${KDE4_KNEWSTUFF_LIBS}
468     ${TAGLIB_LIBRARIES}
469     ${KDE4_KFILE_LIBS}
470     ${KDE4_KDE3SUPPORT_LIBS}
471     ${KDE4_THREADWEAVER_LIBRARIES}
472     ${QT_QTOPENGL_LIBRARY}
473     ${OPENGL_gl_LIBRARY}
474     ${OPENGL_glu_LIBRARY}
475     amarok_taglib
476     amarokplasma
479 if(NOT WIN32)
480     target_link_libraries(amaroklib dl)
481 endif(NOT WIN32)
483 if(USE_SYSTEM_SQLITE)
484     target_link_libraries(amaroklib ${SQLITE_LIBRARIES})
485 endif(USE_SYSTEM_SQLITE)
487 set_target_properties(amaroklib PROPERTIES VERSION 1.0.0 SOVERSION 1 )
488 install(TARGETS amaroklib DESTINATION ${LIB_INSTALL_DIR} )
491 #####################################################################
492 # AMAROK
493 #####################################################################
495 set(amarok_SRCS main.cpp )
497 if(Q_WS_MAC)
498     kde4_add_executable(Amarok ${amarok_SRCS})
499     target_link_libraries(Amarok ${KDE4_KDECORE_LIBS} amaroklib )
500     install(TARGETS Amarok DESTINATION ${BIN_INSTALL_DIR})
502 else(Q_WS_MAC)
504     kde4_add_executable(amarok ${amarok_SRCS})
505     target_link_libraries(amarok ${KDE4_KDECORE_LIBS} amaroklib )
506     install(TARGETS amarok DESTINATION ${BIN_INSTALL_DIR})
507 endif(Q_WS_MAC)
510 ########### install files ###############
512 install(FILES amarok.desktop DESTINATION ${XDG_APPS_INSTALL_DIR} )
513 install(FILES amarok.profile.xml DESTINATION ${DATA_INSTALL_DIR}/profiles )
514 install(FILES amarokrc DESTINATION ${CONFIG_INSTALL_DIR})
515 install(FILES amarok_plugin.desktop DESTINATION ${SERVICETYPES_INSTALL_DIR})
516 install(FILES amarok_append.desktop DESTINATION
517 ${SERVICES_INSTALL_DIR}/ServiceMenus)
519 install(FILES context/servicetypes/amarok_context_applet.desktop
520               context/servicetypes/amarok_data_engine.desktop
521               DESTINATION ${SERVICETYPES_INSTALL_DIR} )
523 kde4_install_icons( ${ICON_INSTALL_DIR} )