Patch by first time Amarok contributor Casey Link ( Welcome! )
[amarok.git] / src / CMakeLists.txt
blobb60a066b19c43556783ece2d94239946375fb1a8
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 )
42 OPTION(USE_SYSTEM_SQLITE "Use system sqlite instead of amarok's own copy" OFF)
44 if (USE_SYSTEM_SQLITE)
45     find_package(Sqlite REQUIRED)
46     set(libsqlite_SRCS )
47 else (USE_SYSTEM_SQLITE)
48     # Use our own copy
49     set(libsqlite_SRCS sqlite/sqlite3.c)
50 endif (USE_SYSTEM_SQLITE)
53 include_directories(
54     amarokcore
55     analyzers
56     context
57     context/widgets
58     configdialog
59     configdialog/dialogs
60     plugin
61     statusbar
62     mediadevice
63     servicebrowser
64     #servicebrowser/magnatunestore
65     ${CMAKE_CURRENT_SOURCE_DIR}
66     meta
67     collection
68     podcasts
69     widgets
70     playlistbrowser
71     ${CMAKE_CURRENT_BINARY_DIR} #for amarokconfig.h
72     ${KDE4_INCLUDE_DIR}
73     ${TAGLIB_INCLUDE_DIR}
74     ${QT_INCLUDES}
78 set(libamarokcore_SRCS
79     amarokcore/amarokdbushandler.cpp
80     amarokcore/crashhandler.cpp
83 qt4_add_dbus_adaptor( libamarokcore_SRCS amarokcore/org.kde.amarok.collection.xml amarokcore/amarokdbushandler.h Amarok::DbusCollectionHandler)
84 #qt4_add_dbus_adaptor( libamarokcore_SRCS amarokcore/org.kde.amarok.mediabrowser.xml amarokcore/amarokdbushandler.h Amarok::DbusMediaBrowserHandler)
85 qt4_add_dbus_adaptor( libamarokcore_SRCS amarokcore/org.kde.amarok.player.xml amarokcore/amarokdbushandler.h Amarok::DbusPlayerHandler)
86 qt4_add_dbus_adaptor( libamarokcore_SRCS amarokcore/org.kde.amarok.playlist.xml amarokcore/amarokdbushandler.h Amarok::DbusPlaylistHandler)
87 qt4_add_dbus_adaptor( libamarokcore_SRCS amarokcore/org.kde.amarok.playlistbrowser.xml amarokcore/amarokdbushandler.h Amarok::DbusPlaylistBrowserHandler)
88 qt4_add_dbus_adaptor( libamarokcore_SRCS amarokcore/org.kde.amarok.script.xml amarokcore/amarokdbushandler.h Amarok::DbusScriptHandler)
89 qt4_add_dbus_adaptor( libamarokcore_SRCS amarokcore/org.kde.amarok.context.xml amarokcore/amarokdbushandler.h Amarok::DbusContextHandler)
91 #####################################################################
92 # PLUGIN
93 #####################################################################
94 set(libplugin_SRCS
95     plugin/plugin.cpp
96     plugin/pluginconfig.cpp
99 #####################################################################
100 # SERVICEBROWSER
101 #####################################################################
102 set(libservicebrowser_SRCS
103     servicebrowser/servicebrowser.cpp
104     servicebrowser/servicebase.cpp
105     servicebrowser/servicemetabase.cpp
106     servicebrowser/servicecollection.cpp
107     servicebrowser/servicesqlquerymaker.cpp
108     servicebrowser/servicesqlcollection.cpp
109     servicebrowser/ServiceDynamicCollection.cpp
110     servicebrowser/infoparserbase.cpp
111     servicebrowser/ServiceSqlRegistry.cpp
112     servicebrowser/ServiceAlbumCoverDownloader.cpp
113     servicebrowser/ServiceInfoProxy.cpp
114     servicebrowser/ServiceListModel.cpp
115     servicebrowser/ServiceListDelegate.cpp
116     servicebrowser/DynamicServiceQueryMaker.cpp
120 #####################################################################
121 # SCRIPTABLESERVICE
122 #####################################################################
123 set(libscriptableservice_SRCS
124     servicebrowser/scriptableservice/scriptableservicemanager.cpp
125     servicebrowser/scriptableservice/ScriptableServiceInfoParser.cpp
126     servicebrowser/scriptableservice/scriptableservice.cpp
127     servicebrowser/scriptableservice/ScriptableServiceCollection.cpp
128     servicebrowser/scriptableservice/DynamicScriptableServiceMeta.cpp
129     servicebrowser/scriptableservice/DynamicScriptableServiceCollection.cpp
130     servicebrowser/scriptableservice/DynamicScriptableQueryMaker.cpp
133 #####################################################################
134 # SHOUTCASTSERVICE
135 #####################################################################
136 set(libshoutcastservice_SRCS
137     servicebrowser/shoutcast/ShoutcastService.cpp
138     servicebrowser/shoutcast/ShoutcastServiceCollection.cpp
139     servicebrowser/shoutcast/ShoutcastServiceQueryMaker.cpp
144 #####################################################################
145 # JAMENDOSERVICE
146 #####################################################################
147 set(libjamendoservice_SRCS
148     servicebrowser/jamendo/jamendoservice.cpp
149     servicebrowser/jamendo/JamendoMeta.cpp
150     servicebrowser/jamendo/jamendodatabasehandler.cpp
151     servicebrowser/jamendo/jamendoxmlparser.cpp
152     servicebrowser/jamendo/JamendoInfoParser.cpp
155 #####################################################################
156 # MP3TUNESERVICE
157 #####################################################################
158 set(libmp3tunesservice_SRCS
159     servicebrowser/mp3tunes/mp3tunesservice.cpp
160     servicebrowser/mp3tunes/Mp3tunesServiceCollection.cpp
161     servicebrowser/mp3tunes/Mp3tunesServiceQueryMaker.cpp
162     servicebrowser/mp3tunes/Mp3tunesMeta.cpp
166 qt4_add_dbus_adaptor( libscriptableservice_SRCS servicebrowser/scriptableservice/org.kde.amarok.ScriptableServiceManager.xml servicebrowser/scriptableservice/scriptableservicemanager.h ScriptableServiceManager)
168 #####################################################################
169 # CONFIGDIALOG
170 #####################################################################
171 set(libconfigdialog_SRCS
172     configdialog/ConfigDialog.cpp
173     configdialog/ConfigDialogBase.cpp
174     configdialog/dialogs/AppearanceConfig.cpp
175     configdialog/dialogs/CollectionConfig.cpp
176     configdialog/dialogs/EngineConfig.cpp
177     configdialog/dialogs/GeneralConfig.cpp
178     configdialog/dialogs/LastfmConfig.cpp
179     configdialog/dialogs/MediadeviceConfig.cpp
180     configdialog/dialogs/OsdConfig.cpp
181     configdialog/dialogs/PlaybackConfig.cpp
184 kde4_add_ui_files(libconfigdialog_SRCS
185     configdialog/dialogs/AppearanceConfig.ui
186     configdialog/dialogs/CollectionConfig.ui
187     configdialog/dialogs/GeneralConfig.ui
188     configdialog/dialogs/LastfmConfig.ui
189     configdialog/dialogs/OsdConfig.ui
190     configdialog/dialogs/PlaybackConfig.ui
193 #####################################################################
194 # MAGNATUNESTORE
195 #####################################################################
196 set(libmagnatunestore_SRCS
197     servicebrowser/magnatunestore/magnatuneinfoparser.cpp
198     servicebrowser/magnatunestore/MagnatuneStore.cpp
199     servicebrowser/magnatunestore/magnatunedownloaddialog.cpp
200     servicebrowser/magnatunestore/magnatunepurchasedialog.cpp
201     servicebrowser/magnatunestore/magnatunepurchasehandler.cpp
202     servicebrowser/magnatunestore/MagnatuneMeta.cpp
203     servicebrowser/magnatunestore/magnatunexmlparser.cpp
204     servicebrowser/magnatunestore/magnatunedatabasehandler.cpp
205     servicebrowser/magnatunestore/magnatuneredownloaddialog.cpp
206     servicebrowser/magnatunestore/magnatuneredownloadhandler.cpp
207     servicebrowser/magnatunestore/magnatunedownloadinfo.cpp
208     servicebrowser/magnatunestore/magnatunealbumdownloader.cpp
211 kde4_add_ui3_files(libmagnatunestore_SRCS
212     servicebrowser/magnatunestore/magnatunedownloaddialogbase.ui
213     #servicebrowser/magnatunestore/magnatunepurchasedialogbase.ui
214     servicebrowser/magnatunestore/magnatuneredownloaddialogbase.ui
217 kde4_add_ui_files(libconfigdialog_SRCS
218     servicebrowser/magnatunestore/magnatunepurchasedialogbase.ui
221 #####################################################################
222 # COLLECTIONBROWSER
223 #####################################################################
224 set(libcollectionbrowser_SRCS
225     collectionbrowser/CollectionTreeView.cpp
226     collectionbrowser/CollectionTreeItemModelBase.cpp
227     collectionbrowser/CollectionTreeItemModel.cpp
228     collectionbrowser/SingleCollectionTreeItemModel.cpp
229     collectionbrowser/CollectionSortFilterProxyModel.cpp
230     collectionbrowser/CollectionTreeItem.cpp
231     collectionbrowser/CollectionWidget.cpp
234 #####################################################################
235 # ANALYZERS
236 #####################################################################
237 set(libanalyzers_SRCS
238     analyzers/analyzerbase.cpp
239     analyzers/analyzerfactory.cpp
240     analyzers/baranalyzer.cpp
241     analyzers/blockanalyzer.cpp
242     analyzers/glanalyzer.cpp
243     analyzers/glanalyzer2.cpp
244     analyzers/glanalyzer3.cpp
245     analyzers/sonogram.cpp
246 #    analyzers/turbine.cpp
247 #analyzers/boomanalyzer.cpp
250 #####################################################################
251 # STATUSBAR
252 #####################################################################
253 set(libstatusbar_SRCS
254     statusbar/statusBarBase.cpp
255     statusbar/statusbar.cpp
256     statusbar/overlayWidget.cpp
257     statusbar/popupMessage.cpp
258     statusbar/progressBar.cpp
259 #TODO: Port to new playlist
260 #    statusbar/queueLabel.cpp
261     statusbar/selectLabel.cpp
264 #####################################################################
265 # LAST.FM
266 #####################################################################
267 set(lastfm_SRCS
268     meta/lastfm/LastFmMeta.cpp
271 #####################################################################
272 # META
273 #####################################################################
274 set(meta_SRCS
275     meta/Capability.cpp
276     meta/EditCapability.cpp
277     meta/LastFmCapability.cpp
278     meta/meta.cpp
279     meta/proxy/MetaProxy.cpp
280     meta/file/File.cpp
281     meta/stream/Stream.cpp
282     meta/PlaylistFileSupport.cpp
283     meta/MetaUtility.cpp
286 #####################################################################
287 # COLLECTION
288 #####################################################################
289 set(collection_SRCS
290     collection/BlockingQuery.cpp
291     collection/Collection.cpp
292     collection/CollectionManager.cpp
293     collection/CollectionLocation.cpp
294     collection/MetaQueryBuilder.cpp
295     collection/QueryMaker.cpp
296     collection/support/MemoryMatcher.cpp
297     collection/support/MemoryQueryMaker.cpp
301 #####################################################################
302 # CONTEXT
303 #####################################################################
306 set( libcontextview_SRCS
307     context/Applet.cpp
308     context/Containment.cpp
309     context/ContextView.cpp
310     context/ContextObserver.cpp
311     context/ContextScene.cpp
312     context/CoverBling.cpp
313     context/DataEngineManager.cpp
314     context/LyricsManager.cpp
315     context/Svg.cpp
316     context/widgets/TextWidget.cpp
317     context/widgets/VBoxLayout.cpp
320 #####################################################################
321 # PODCASTS
322 #####################################################################
323 set(libpodcasts_SRCS
324     podcasts/PodcastCollection.cpp
325     podcasts/PodcastReader.cpp
328 #####################################################################
329 # PLAYLISTBROWSER
330 #####################################################################
331 set(libplaylistbrowser_SRCS
332     playlistbrowser/PlaylistBrowser.cpp
333     playlistbrowser/PodcastModel.cpp
336 #####################################################################
337 # QUEUEMANAGER
338 #####################################################################
339 set(libqueuemanager_SRCS
340     queuemanager/QueueManager.cpp
341     queuemanager/QueueModel.cpp
344 #####################################################################
345 # PLAYLISTMANAGER
346 #####################################################################
347 set(libplaylistmanager_SRCS
348     playlistmanager/PlaylistManager.cpp
351 #####################################################################
352 # PLAYLIST
353 #####################################################################
354 set(libplaylist_SRCS
355     playlist/PlaylistHeader.cpp
356     playlist/PlaylistItem.cpp
357     playlist/PlaylistModel.cpp
358     playlist/PlaylistWidget.cpp
359     playlist/RepeatTrackNavigator.cpp
360     playlist/StandardTrackNavigator.cpp
361     playlist/TrackNavigator.cpp
362     playlist/UndoCommands.cpp
363     playlist/PlaylistDropVis.cpp
364     playlist/PlaylistGraphicsItem.cpp
365     playlist/PlaylistGraphicsScene.cpp
366     playlist/PlaylistGraphicsView.cpp
367     playlist/PlaylistTextItem.cpp
368     playlist/PlaylistAlbumGroup.cpp
369     playlist/PlaylistClassicView.cpp
372 #####################################################################
373 # LIBAMAROK
374 #####################################################################
375 set(amaroklib_LIB_SRCS
376     ${libmagnatunestore_SRCS}
377     ${libshoutcastservice_SRCS}
378     ${libmp3tunesservice_SRCS}
379     ${libscriptableservice_SRCS}
380     ${libamarokcore_SRCS}
381     ${libanalyzers_SRCS}
382     ${libcontextview_SRCS}
383     ${libcollectionbrowser_SRCS}
384     ${libconfigdialog_SRCS}
385     ${libjamendoservice_SRCS}
386     ${libplaylist_SRCS}
387     ${libplugin_SRCS}
388     ${libpodcasts_SRCS}
389     ${libservicebrowser_SRCS}
390     ${libsqlite_SRCS}
391     ${libstatusbar_SRCS}
392     ${lastfm_SRCS}
393     ${meta_SRCS}
394     ${collection_SRCS}
395     ${mac_SRCS}
396     ${libplaylistbrowser_SRCS}
397     ${libqueuemanager_SRCS}
398     ${libplaylistmanager_SRCS}
399     actionclasses.cpp
400     AmarokMimeData.cpp
401     app.cpp
402     atomicstring.cpp
403     collectiondb.cpp
404     coverfetcher.cpp
405     covermanager.cpp
406     cuefile.cpp
407     dbsetup.ui.h
408     deletedialog.cpp
409     deviceconfiguredialog.cpp
410     directorylist.cpp
411     editfilterdialog.cpp
412     enginebase.cpp
413     enginecontroller.cpp
414     engineobserver.cpp
415     equalizergraph.cpp
416     equalizerpresetmanager.cpp
417     equalizersetup.cpp
418     expression.cpp
419     fht.cpp
420     #filebrowser.cpp
421     filebrowserwidget.cpp
422     hintlineedit.cpp
423     iconloader.cpp
424     k3bexporter.cpp
425     kbookmarkhandler.cpp
426     ktrm.cpp
427     lastfm.cpp
428     MainWindow.cpp
429     mediabrowser.cpp
430     MediaItem.cpp
431     MediaDevice.cpp
432     MediaDeviceCache.cpp
433     MediaDevicePluginManager.cpp
434     medium.cpp
435     metabundle.cpp
436     moodbar.cpp
437     mountpointmanager.cpp
438     osd.cpp
439     pixmapviewer.cpp
440     PlaylistHandler.cpp
441     pluginmanager.cpp
442     podcastsettings.cpp
443     prettypopupmenu.cpp
444     querybuilder.cpp
445     refreshimages.cpp
446     scriptmanager.cpp
447     scrobbler.cpp
448     Sidebar.h
449     smartplaylisteditor.cpp
450     socketserver.cpp
451     StarManager.cpp
452     Statistics.cpp
453     systray.cpp
454     tagdialog.cpp
455     tagguesser.cpp
456     threadmanager.cpp
457     tooltip.cpp
458     trackpickerdialog.cpp
459     tracktooltip.cpp
460     transferdialog.cpp
461     widgets/analyzerwidget.cpp
462     widgets/progressslider.cpp
463     widgets/searchwidget.cpp
464     widgets/SidebarWidget.cpp
465     widgets/sliderwidget.cpp
466     widgets/volumewidget.cpp
467     widgets/MainToolbar.cpp
468     xmlloader.cpp
469     xspfplaylist.cpp
473 set( amaroklib_DEPENDS "amarokplasma" )
475 kde4_add_kcfg_files(amaroklib_LIB_SRCS amarokcore/amarokconfig.kcfgc)
477 kde4_add_ui3_files(amaroklib_LIB_SRCS
478    dbsetup.ui
479 #   newdynamic.ui
480    collectionbrowser/OrganizeCollectionDialog.ui
481    podcastsettingsbase.ui
482    tagdialogbase.ui
483 #   tagguesserconfigdialog.ui
484    trackpickerdialogbase.ui
487 kde4_add_ui_files(amaroklib_LIB_SRCS
488     deletedialogbase.ui
489     scriptmanagerbase.ui
490     tagguesserconfigdialog.ui
493 kde4_add_library(amaroklib SHARED ${amaroklib_LIB_SRCS})
495 target_link_libraries(amaroklib
496     ${KDE4_KUTILS_LIBS} ${KDE4_KDEUI_LIBS} ${KDE4_KHTML_LIBS} ${KDE4_KNEWSTUFF_LIBS}
497     ${TAGLIB_LIBRARIES}
498     ${KDE4_KFILE_LIBS}
499     ${KDE4_KDE3SUPPORT_LIBS}
500     ${KDE4_THREADWEAVER_LIBRARIES}
501     ${QT_QTOPENGL_LIBRARY}
502     ${OPENGL_gl_LIBRARY}
503     ${OPENGL_glu_LIBRARY}
504     amarok_taglib
505     amarokplasma
508 if(NOT WIN32)
509     target_link_libraries(amaroklib dl)
510 endif(NOT WIN32)
512 if(USE_SYSTEM_SQLITE)
513     target_link_libraries(amaroklib ${SQLITE_LIBRARIES})
514 endif(USE_SYSTEM_SQLITE)
516 set_target_properties(amaroklib PROPERTIES VERSION 1.0.0 SOVERSION 1 )
517 install(TARGETS amaroklib DESTINATION ${LIB_INSTALL_DIR} )
520 #####################################################################
521 # AMAROK
522 #####################################################################
524 set(amarok_SRCS main.cpp )
526 if(Q_WS_MAC)
527     kde4_add_executable(Amarok ${amarok_SRCS})
528     target_link_libraries(Amarok ${KDE4_KDECORE_LIBS} amaroklib )
529     install(TARGETS Amarok DESTINATION ${BIN_INSTALL_DIR})
531 else(Q_WS_MAC)
533     kde4_add_executable(amarok ${amarok_SRCS})
534     target_link_libraries(amarok ${KDE4_KDECORE_LIBS} amaroklib )
535     install(TARGETS amarok DESTINATION ${BIN_INSTALL_DIR})
536 endif(Q_WS_MAC)
539 ########### install files ###############
541 install(FILES amarok.desktop DESTINATION ${XDG_APPS_INSTALL_DIR} )
542 install(FILES amarok.profile.xml DESTINATION ${DATA_INSTALL_DIR}/profiles )
543 install(FILES amarokrc DESTINATION ${CONFIG_INSTALL_DIR})
544 install(FILES amarok_plugin.desktop DESTINATION ${SERVICETYPES_INSTALL_DIR})
545 install(FILES amarok_append.desktop DESTINATION
546 ${SERVICES_INSTALL_DIR}/ServiceMenus)
548 install(FILES context/servicetypes/amarok_context_applet.desktop
549               context/servicetypes/amarok_data_engine.desktop
550               DESTINATION ${SERVICETYPES_INSTALL_DIR} )
552 kde4_install_icons( ${ICON_INSTALL_DIR} )