Finish breaking the toolbar so that It can be put back together better and stronger...
[amarok.git] / src / CMakeLists.txt
blob848961b7d69eb72fead6a423228470939e861a77
2 FIND_PATH( KONQSIDEBAR_INCLUDE_DIR konqsidebarplugin.h
3   ${KDE4_INCLUDE_DIR}
4   /usr/include
5   /usr/local/include
8 if(KONQSIDEBAR_INCLUDE_DIR)
9 #   add_subdirectory( konquisidebar ) #disabling for now
10 else(KONQSIDEBAR_INCLUDE_DIR)
11     MESSAGE(STATUS "You're missing the kdebase header files")
12     MESSAGE(STATUS "Konqueror sidebar will not be compiled.")
13 endif(KONQSIDEBAR_INCLUDE_DIR)
14 ADD_DEFINITIONS(${TAGLIB_CFLAGS})
16 if(MP4V2_FOUND)
17  ADD_DEFINITIONS(-DHAVE_MP4V2)
18  include_directories( ${MP4V2_INCLUDE_DIR} )
19 endif(MP4V2_FOUND)
21 add_subdirectory( amarokcore )
22 add_subdirectory( contextview )
23 add_subdirectory( data )
24 add_subdirectory( images )
25 add_subdirectory( loader )
26 add_subdirectory( scripts )
27 add_subdirectory( themes )
28 add_subdirectory( vis )
29 add_subdirectory( metadata )
30 add_subdirectory( engine )
31 add_subdirectory( mediadevice )
32 add_subdirectory( collectionscanner )
33 #add_subdirectory( device ) #not necessary at the moment, enable again when devicemanager has been ported to Solid
35 OPTION(USE_SYSTEM_SQLITE "Use system sqlite instead of amarok's own copy" OFF)
36 if (USE_SYSTEM_SQLITE)
37   find_package(Sqlite REQUIRED)
38   set(libsqlite_SRCS )
39 else (USE_SYSTEM_SQLITE)
40   # Use our own copy
41         set(libsqlite_SRCS
42                             sqlite/alter.c
43                             sqlite/analyze.c
44                             sqlite/attach.c
45                             sqlite/auth.c
46                             sqlite/btree.c
47                             sqlite/build.c
48                             sqlite/callback.c
49                             sqlite/complete.c
50                             sqlite/date.c
51                             sqlite/delete.c
52                             sqlite/expr.c
53                             sqlite/func.c
54                             sqlite/hash.c
55                             sqlite/insert.c
56                             sqlite/legacy.c
57                             sqlite/loadext.c
58                             sqlite/main.c
59                             sqlite/opcodes.c
60                             sqlite/os.c
61                             sqlite/os_unix.c
62                             sqlite/os_win.c
63                             sqlite/pager.c
64                             sqlite/parse.c
65                             sqlite/pragma.c
66                             sqlite/prepare.c
67                             sqlite/printf.c
68                             sqlite/random.c
69                             sqlite/select.c
70                             sqlite/table.c
71                                 sqlite/tokenize.c
72                             sqlite/trigger.c
73                             sqlite/update.c
74                             sqlite/utf.c
75                             sqlite/util.c
76                             sqlite/vacuum.c
77                                 sqlite/vdbe.c
78                                 sqlite/vdbeapi.c
79                                 sqlite/vdbeaux.c
80                                 sqlite/vdbefifo.c
81                                 sqlite/vdbemem.c
82                                 sqlite/vtab.c
83                                 sqlite/where.c
85 endif (USE_SYSTEM_SQLITE)
88 include_directories(
89         amarokcore
90         analyzers
91         plugin
92         statusbar
93         mediadevice
94         servicebrowser
95         servicebrowser/magnatunestore
96         ${CMAKE_CURRENT_SOURCE_DIR}
97         meta
98         collection
99         ${CMAKE_CURRENT_BINARY_DIR} #for amarokconfig.h
100         ${KDE4_INCLUDE_DIR}
101         ${QT_INCLUDES}  )
104 set(libamarokcore_SRCS
105         amarokcore/amarokdbushandler.cpp
106         amarokcore/crashhandler.cpp
107         )
108 qt4_add_dbus_adaptor( libamarokcore_SRCS amarokcore/org.kde.amarok.collection.xml amarokcore/amarokdbushandler.h Amarok::DbusCollectionHandler)
109 qt4_add_dbus_adaptor( libamarokcore_SRCS amarokcore/org.kde.amarok.contextbrowser.xml amarokcore/amarokdbushandler.h Amarok::DbusContextBrowserHandler)
110 qt4_add_dbus_adaptor( libamarokcore_SRCS amarokcore/org.kde.amarok.mediabrowser.xml amarokcore/amarokdbushandler.h Amarok::DbusMediaBrowserHandler)
111 qt4_add_dbus_adaptor( libamarokcore_SRCS amarokcore/org.kde.amarok.player.xml amarokcore/amarokdbushandler.h Amarok::DbusPlayerHandler)
112 qt4_add_dbus_adaptor( libamarokcore_SRCS amarokcore/org.kde.amarok.playlist.xml amarokcore/amarokdbushandler.h Amarok::DbusPlaylistHandler)
113 qt4_add_dbus_adaptor( libamarokcore_SRCS amarokcore/org.kde.amarok.playlistbrowse.xml amarokcore/amarokdbushandler.h Amarok::DbusPlaylistBrowserHandler)
114 qt4_add_dbus_adaptor( libamarokcore_SRCS amarokcore/org.kde.amarok.script.xml amarokcore/amarokdbushandler.h Amarok::DbusScriptHandler)
118 set(libplugin_SRCS
119         plugin/plugin.cpp
120         plugin/pluginconfig.cpp
124 set(libservicebrowser_SRCS
125         servicebrowser/servicebrowser.cpp
126         servicebrowser/servicebase.cpp
127         servicebrowser/servicemodelitembase.cpp
128         servicebrowser/servicemodelbase.cpp)
130 set(libscriptableservice_SRCS
131         servicebrowser/scriptableservice/scriptableservicemanager.cpp
132         servicebrowser/scriptableservice/scriptableservicecontentitem.cpp
133         servicebrowser/scriptableservice/scriptableservice.cpp
134         servicebrowser/scriptableservice/scriptableservicecontentmodel.cpp)
137 qt4_add_dbus_adaptor( libscriptableservice_SRCS servicebrowser/scriptableservice/org.kde.amarok.ScriptableServiceManager.xml servicebrowser/scriptableservice/scriptableservicemanager.h ScriptableServiceManager)
139 set(libmagnatunestore_SRCS
140         servicebrowser/magnatunestore/magnatuneinfoparser.cpp
141         servicebrowser/magnatunestore/magnatunebrowser.cpp
142         servicebrowser/magnatunestore/magnatunedownloaddialog.cpp
143         servicebrowser/magnatunestore/magnatunepurchasedialog.cpp
144         servicebrowser/magnatunestore/magnatunepurchasehandler.cpp
145         servicebrowser/magnatunestore/magnatunetypes.cpp
146         servicebrowser/magnatunestore/magnatunexmlparser.cpp
147         servicebrowser/magnatunestore/magnatunedatabasehandler.cpp
148         servicebrowser/magnatunestore/magnatuneredownloaddialog.cpp
149         servicebrowser/magnatunestore/magnatuneredownloadhandler.cpp
150         servicebrowser/magnatunestore/magnatunedownloadinfo.cpp
151         servicebrowser/magnatunestore/magnatunealbumdownloader.cpp
152         servicebrowser/magnatunestore/magnatunecontentitem.cpp
153         servicebrowser/magnatunestore/magnatunecontentmodel.cpp)
155 kde4_add_ui3_files(libmagnatunestore_SRCS
156         servicebrowser/magnatunestore/magnatunedownloaddialogbase.ui
157         servicebrowser/magnatunestore/magnatunepurchasedialogbase.ui
158         servicebrowser/magnatunestore/magnatuneredownloaddialogbase.ui)
161 set(libcollectionbrowser_SRCS
162     collectionbrowser/collectionbrowserview.cpp
163     collectionbrowser/collectiontreeitemmodel.cpp
164     collectionbrowser/collectiontreeitem.cpp
167 set(libcontextview_SRCS
168     contextview/contextview.cpp
169     contextview/contextbox.cpp
170     ${CMAKE_CURRENT_SOURCE_DIR}/contextview/albumbox.cpp
171     ${CMAKE_CURRENT_SOURCE_DIR}/contextview/cloudbox.cpp
175 set(libanalyzers_SRCS
176      analyzers/analyzerbase.cpp
177      analyzers/analyzerfactory.cpp
178      analyzers/baranalyzer.cpp
179      analyzers/blockanalyzer.cpp
180      analyzers/glanalyzer.cpp
181      analyzers/glanalyzer2.cpp
182      analyzers/glanalyzer3.cpp
183      analyzers/sonogram.cpp
184 #    analyzers/turbine.cpp
185 #analyzers/boomanalyzer.cpp
188 set(libstatusbar_SRCS
189     statusbar/statusBarBase.cpp
190     statusbar/statusbar.cpp
191     statusbar/overlayWidget.cpp
192     statusbar/popupMessage.cpp
193     statusbar/progressBar.cpp
194     statusbar/squeezedtextlabel.cpp
195     statusbar/queueLabel.cpp
196     statusbar/selectLabel.cpp
197         )
199 ########### next target ###############
201 set(amarok_LIB_SRCS ${libamarokcore_SRCS} ${libplugin_SRCS} ${libstatusbar_SRCS}
202         ${libsqlite_SRCS} ${libservicebrowser_SRCS} ${libscriptableservice_SRCS}
203         ${libmagnatunestore_SRCS} ${libanalyzers_SRCS} ${libcollectionbrowser_SRCS}
204         ${libcontextview_SRCS}
205    collection/sqlregistry.cpp
206    collection/sqlmeta.cpp
207    Options1.ui.h
208    actionclasses.cpp
209    analyzerwidget.cpp
210    app.cpp
211    atomicstring.cpp
212    collectionbrowser.cpp
213    collectiondb.cpp
214    columnlist.cpp
215    configdialog.cpp
216    contextbrowser.cpp
217    coverfetcher.cpp
218    covermanager.cpp
219    cuefile.cpp
220    dbsetup.ui.h
221    deletedialog.cpp
222    deviceconfiguredialog.cpp
223    devicemanager.cpp
224    directorylist.cpp
225    dockwidget.cpp
226    dynamicmode.cpp
227    editfilterdialog.cpp
228    enginebase.cpp
229    enginecontroller.cpp
230    engineobserver.cpp
231    equalizergraph.cpp
232    equalizerpresetmanager.cpp
233    equalizersetup.cpp
234    expression.cpp
235    fht.cpp
236    filebrowser.cpp
237    hintlineedit.cpp
238    htmlview.cpp
239    iconloader.cpp
240    k3bexporter.cpp
241    kbookmarkhandler.cpp
242    ktrm.cpp
243    lastfm.cpp
244    mediabrowser.cpp
245    mediadevicemanager.cpp
246    medium.cpp
247    mediumpluginmanager.cpp
248    metabundle.cpp
249    metabundlesaver.cpp
250    moodbar.cpp
251    mountpointmanager.cpp
252    mydiroperator.cpp
253    osd.cpp
254    pixmapviewer.cpp
255    playlist.cpp
256    playlistbrowser.cpp
257    playlistbrowseritem.cpp
258    playlistitem.cpp
259    playlistloader.cpp
260    playlistselection.cpp
261    playlistwindow.cpp
262    pluginmanager.cpp
263    podcastsettings.cpp
264    prettypopupmenu.cpp
265    progressslider.cpp
266    querybuilder.cpp
267    queuemanager.cpp
268    refreshimages.cpp
269    scancontroller.cpp
270    scriptmanager.cpp
271    scrobbler.cpp
272    searchwidget.cpp
273    sidebar.h
274    sidebarwidget.cpp
275    sliderwidget.cpp
276    smartplaylisteditor.cpp
277    socketserver.cpp
278    statistics.cpp
279    systray.cpp
280    tagdialog.cpp
281    tagguesser.cpp
282    threadmanager.cpp
283    tooltip.cpp
284    trackpickerdialog.cpp
285    tracktooltip.cpp
286    transferdialog.cpp
287    volumewidget.cpp
288    xmlloader.cpp
289    xspfplaylist.cpp )
291 kde4_add_kcfg_files(amarok_LIB_SRCS amarokcore/amarokconfig.kcfgc)
293 set(amarok_collectionscanner_xml collectionscanner/org.kde.amarok.scanner.xml)
295 QT4_ADD_DBUS_INTERFACE( amarok_LIB_SRCS ${amarok_collectionscanner_xml} amarok_collection_scanner_interface )
299 kde4_automoc(${amarok_LIB_SRCS})
301 kde4_add_ui3_files(amarok_LIB_SRCS
302    Options1.ui
303    Options2.ui
304    Options4.ui
305    Options5.ui
306    Options7.ui
307    Options8.ui
308    dbsetup.ui
309 #   firstrunwizard.ui
310    newdynamic.ui
311    organizecollectiondialog.ui
312    podcastsettingsbase.ui
313    tagdialogbase.ui
314 #   tagguesserconfigdialog.ui
315    trackpickerdialogbase.ui )
317 kde4_add_ui_files(amarok_LIB_SRCS
318     deletedialogbase.ui
319     scriptmanagerbase.ui
320     tagguesserconfigdialog.ui
323 kde4_add_library(amarok SHARED ${amarok_LIB_SRCS})
325 target_link_libraries(amarok
326         ${KDE4_KUTILS_LIBS} ${KDE4_KDEUI_LIBS} ${KDE4_KHTML_LIBS} ${KDE4_KNEWSTUFF_LIBS}
327         ${TAGLIB_LIBRARIES}
328         ${KDE4_KDE3SUPPORT_LIBS} dl
329         amarok_taglib
332 if(USE_SYSTEM_SQLITE)
333 target_link_libraries(amarok  ${SQLITE_LIBRARIES})
334 endif(USE_SYSTEM_SQLITE)
336 set_target_properties(amarok PROPERTIES VERSION 1.0.0 SOVERSION 1 )
337 install(TARGETS amarok DESTINATION ${LIB_INSTALL_DIR} )
340 ########### next target ###############
342 set(amarokapp_SRCS main.cpp )
344 kde4_automoc(${amarokapp_SRCS})
346 kde4_add_executable(amarokapp ${amarokapp_SRCS})
348 target_link_libraries(amarokapp  ${KDE4_KDECORE_LIBS} amarok )
350 install(TARGETS amarokapp DESTINATION ${BIN_INSTALL_DIR})
353 ########### install files ###############
355 install(FILES amarok.desktop DESTINATION ${XDG_APPS_DIR} )
356 install(FILES amarok.profile.xml DESTINATION ${DATA_INSTALL_DIR}/profiles )
357 install(FILES amarokrc DESTINATION ${CONFIG_INSTALL_DIR})
358 install(FILES amarok_plugin.desktop DESTINATION ${SERVICETYPES_INSTALL_DIR})
359 install(FILES amarokui.rc DESTINATION ${DATA_INSTALL_DIR}/amarok)
360 install(FILES amarok_append.desktop DESTINATION ${DATA_INSTALL_DIR}/konqueror/servicemenus)
362 kde4_install_icons( ${ICON_INSTALL_DIR} )