PageRenderTime 105ms CodeModel.GetById 61ms app.highlight 4ms RepoModel.GetById 36ms app.codeStats 0ms

/src/libtomahawk/CMakeLists.txt

http://github.com/tomahawk-player/tomahawk
CMake | 602 lines | 532 code | 60 blank | 10 comment | 3 complexity | b3fc795f0aa4f5e580f9c9db750d32ca MD5 | raw file
  1project( tomahawklib )
  2
  3add_definitions( ${QT_DEFINITIONS} )
  4add_definitions( -DQT_SHARED )
  5add_definitions( -DDLLEXPORT_PRO )
  6add_definitions( -DQT_SHAREDPOINTER_TRACK_POINTERS )
  7add_definitions( -DPORTFWDDLLEXPORT_STATIC )
  8
  9configure_file(${CMAKE_CURRENT_SOURCE_DIR}/../tomahawk/Config.h.in
 10               ${CMAKE_CURRENT_BINARY_DIR}/config.h)
 11configure_file(${CMAKE_CURRENT_SOURCE_DIR}/../tomahawk/TomahawkVersion.h.in
 12               ${CMAKE_CURRENT_BINARY_DIR}/TomahawkVersion.h)
 13
 14set( libGuiSources
 15    ActionCollection.cpp
 16
 17    ContextMenu.cpp
 18    DownloadManager.cpp
 19    DownloadJob.cpp
 20    DropJob.cpp
 21    GlobalActionManager.cpp
 22    ViewPage.cpp
 23    ViewPageLazyLoader.cpp
 24    ViewPagePlugin.cpp
 25    ViewManager.cpp
 26    LatchManager.cpp
 27
 28    jobview/JobStatusView.cpp
 29    jobview/JobStatusModel.cpp
 30    jobview/JobStatusDelegate.cpp
 31    jobview/JobStatusItem.cpp
 32    jobview/AclJobItem.cpp
 33    jobview/PipelineStatusItem.cpp
 34    jobview/ScannerStatusItem.cpp
 35    jobview/TransferStatusItem.cpp
 36    jobview/LatchedStatusItem.cpp
 37    jobview/ErrorStatusMessage.cpp
 38    jobview/IndexingJobItem.cpp
 39    jobview/InboxJobItem.cpp
 40    jobview/ScriptErrorStatusMessage.cpp
 41
 42    playlist/InboxModel.cpp
 43    playlist/InboxView.cpp
 44    playlist/ContextView.cpp
 45    playlist/TreeModel.cpp
 46    playlist/TreeProxyModel.cpp
 47    playlist/TreeProxyModelPlaylistInterface.cpp
 48    playlist/ColumnItemDelegate.cpp
 49    playlist/ColumnViewPreviewWidget.cpp
 50    playlist/PlaylistModel.cpp
 51    playlist/PlaylistItemDelegate.cpp
 52    playlist/QueueProxyModel.cpp
 53    playlist/QueueView.cpp
 54    playlist/PlayableModel.cpp
 55    playlist/PlayableProxyModel.cpp
 56    playlist/PlayableProxyModelPlaylistInterface.cpp
 57    playlist/TrackView.cpp
 58    playlist/AlbumModel.cpp
 59    playlist/GridItemDelegate.cpp
 60    playlist/GridView.cpp
 61    playlist/ColumnView.cpp
 62    playlist/ViewHeader.cpp
 63    playlist/LovedTracksModel.cpp
 64    playlist/RecentlyLovedTracksModel.cpp
 65    playlist/TopLovedTracksModel.cpp
 66    playlist/RecentlyAddedModel.cpp
 67    playlist/RecentlyPlayedModel.cpp
 68    playlist/TrackItemDelegate.cpp
 69    playlist/PlayableItem.cpp
 70    playlist/SingleTrackPlaylistInterface.cpp
 71    playlist/RevisionQueueItem.cpp
 72    playlist/TrackDetailView.cpp
 73
 74    playlist/dynamic/DynamicPlaylist.cpp
 75    playlist/dynamic/DynamicView.cpp
 76    playlist/dynamic/DynamicModel.cpp
 77    playlist/dynamic/widgets/DynamicWidget.cpp
 78    playlist/dynamic/widgets/DynamicControlWrapper.cpp
 79    playlist/dynamic/widgets/DynamicControlList.cpp
 80    playlist/dynamic/widgets/ReadOrWriteWidget.cpp
 81    playlist/dynamic/widgets/MiscControlWidgets.cpp
 82    playlist/dynamic/widgets/CollapsibleControls.cpp
 83    playlist/dynamic/widgets/DynamicSetupWidget.cpp
 84
 85    resolvers/ExternalResolverGui.cpp
 86    resolvers/ScriptResolver.cpp
 87    resolvers/JSResolver.cpp
 88    resolvers/JSResolverHelper.cpp
 89    resolvers/ScriptEngine.cpp
 90    resolvers/JSAccount.cpp
 91    resolvers/ScriptJob.cpp
 92    resolvers/SyncScriptJob.cpp
 93    resolvers/ScriptObject.cpp
 94    resolvers/ScriptLinkGeneratorPlugin.cpp
 95    resolvers/ScriptAccount.cpp
 96    resolvers/ScriptPlugin.cpp
 97
 98    utils/DpiScaler.cpp
 99    utils/ImageRegistry.cpp
100    utils/WidgetDragFilter.cpp
101    utils/XspfGenerator.cpp
102    utils/JspfLoader.cpp
103    utils/SpotifyParser.cpp
104    utils/M3uLoader.cpp
105    utils/ItunesParser.cpp
106    utils/ItunesLoader.cpp
107    utils/ShortenedLinkParser.cpp
108    utils/TomahawkStyle.cpp
109    utils/DropJobNotifier.cpp
110    utils/ProxyStyle.cpp
111    utils/TomahawkUtilsGui.cpp
112    utils/Closure.cpp
113    utils/PixmapDelegateFader.cpp
114    utils/SmartPointerList.h
115    utils/AnimatedSpinner.cpp
116    utils/BinaryInstallerHelper.cpp
117    utils/BinaryExtractWorker.cpp
118    utils/SharedTimeLine.cpp
119    utils/ResultUrlChecker.cpp
120    utils/NetworkReply.cpp
121    utils/NetworkProxyFactory.cpp
122    utils/NetworkAccessManager.cpp
123    utils/ShortLinkHelper.cpp
124    utils/LinkGenerator.cpp
125    utils/LinkGeneratorPlugin.cpp
126    utils/TomaHkLinkGeneratorPlugin.cpp
127
128    viewpages/SearchViewPage.cpp
129    viewpages/SourceViewPage.cpp
130    viewpages/ArtistViewPage.cpp
131    viewpages/AlbumViewPage.cpp
132    viewpages/TrackViewPage.cpp
133    viewpages/PlaylistViewPage.cpp
134    viewpages/CollectionViewPage.cpp
135
136    widgets/AnimatedSplitter.cpp
137    widgets/BasicHeader.cpp
138    widgets/HoverControls.cpp
139    widgets/BackgroundWidget.cpp
140    widgets/Breadcrumb.cpp
141    widgets/BreadcrumbButton.cpp
142    widgets/ChartDataLoader.cpp
143    widgets/ClickableLabel.cpp
144    widgets/ComboBox.cpp
145    widgets/DropDownButton.cpp
146    widgets/DownloadButton.cpp
147    widgets/ElidedLabel.cpp
148    widgets/FilterHeader.cpp
149    widgets/CaptionLabel.cpp
150    widgets/HeaderLabel.cpp
151    widgets/HistoryWidget.cpp
152    widgets/ImageButton.cpp
153    widgets/OverlayButton.cpp
154    widgets/OverlayWidget.cpp
155    widgets/PlayableCover.cpp
156    widgets/PlaylistsModel.cpp
157    widgets/QueryLabel.cpp
158    widgets/RecentPlaylistsModel.cpp
159    widgets/RecentlyPlayedPlaylistsModel.cpp
160    widgets/ScriptCollectionHeader.cpp
161    widgets/ScrollingLabel.cpp
162    widgets/SeekSlider.cpp
163    widgets/SourceTreePopupDialog.cpp
164    widgets/ToggleButton.cpp
165
166    widgets/searchlineedit/ClearButton.cpp
167    widgets/searchlineedit/LineEdit.cpp
168    widgets/searchlineedit/SearchButton.cpp
169    widgets/searchlineedit/SearchLineEdit.cpp
170)
171
172if(QCA2_FOUND)
173    set( libGuiSources ${libGuiSources} utils/GroovesharkParser.cpp )
174endif()
175
176list(APPEND libSources
177    TomahawkSettings.cpp
178    SourceList.cpp
179    Pipeline.cpp
180
181    Artist.cpp
182    ArtistPlaylistInterface.cpp
183    Album.cpp
184    AlbumPlaylistInterface.cpp
185    CountryUtils.cpp
186    FuncTimeout.cpp
187    Playlist.cpp
188    PlaylistEntry.cpp
189    PlaylistPlaylistInterface.cpp
190    MetaPlaylistInterface.cpp
191    Query.cpp
192    Result.cpp
193    Source.cpp
194    Track.cpp
195    TrackData.cpp
196    SourcePlaylistInterface.cpp
197    PlaylistInterface.cpp
198    UrlHandler.cpp
199
200
201    accounts/AccountManager.cpp
202    accounts/Account.cpp
203    accounts/AccountModel.cpp
204    accounts/AccountModelFilterProxy.cpp
205    accounts/CredentialsManager.cpp
206    accounts/ResolverAccount.cpp
207    accounts/AccountDelegate.cpp
208    accounts/DelegateConfigWrapper.cpp
209    accounts/AccountFactoryWrapper.cpp
210    accounts/AccountFactoryWrapperDelegate.cpp
211    accounts/AccountConfigWidget.cpp
212    accounts/ConfigStorage.cpp
213    accounts/LocalConfigStorage.cpp
214
215    accounts/spotify/SpotifyAccount.cpp
216    accounts/spotify/SpotifyAccountConfig.cpp
217#    accounts/spotify/SpotifyPlaylistUpdater.cpp
218    accounts/spotify/SpotifyInfoPlugin.cpp
219
220    audio/AudioEngine.cpp
221    audio/AudioOutput.cpp
222    audio/MediaStream.cpp
223    audio/Qnr_IoDeviceStream.cpp
224
225    collection/Collection.cpp
226    collection/ArtistsRequest.cpp
227    collection/AlbumsRequest.cpp
228    collection/TracksRequest.cpp
229
230    database/Database.cpp
231    database/fuzzyindex/FuzzyIndex.cpp
232    database/fuzzyindex/DatabaseFuzzyIndex.cpp
233    database/DatabaseCollection.cpp
234    database/LocalCollection.cpp
235    database/DatabaseWorker.cpp
236    database/DatabaseImpl.cpp
237    database/DatabaseResolver.cpp
238    database/DatabaseCommand.cpp
239    database/DatabaseCommand_AddClientAuth.cpp
240    database/DatabaseCommand_AddFiles.cpp
241    database/DatabaseCommand_AddSource.cpp
242    database/DatabaseCommand_AllAlbums.cpp
243    database/DatabaseCommand_AllArtists.cpp
244    database/DatabaseCommand_AllTracks.cpp
245    database/DatabaseCommand_ArtistStats.cpp
246    database/DatabaseCommand_CalculatePlaytime.cpp
247    database/DatabaseCommand_ClientAuthValid.cpp
248    database/DatabaseCommand_CollectionAttributes.cpp
249    database/DatabaseCommand_CollectionStats.cpp
250    database/DatabaseCommand_CreateDynamicPlaylist.cpp
251    database/DatabaseCommand_CreatePlaylist.cpp
252    database/DatabaseCommand_DeleteDynamicPlaylist.cpp
253    database/DatabaseCommand_DeleteFiles.cpp
254    database/DatabaseCommand_DeleteInboxEntry.cpp
255    database/DatabaseCommand_DeletePlaylist.cpp
256    database/DatabaseCommand_DirMtimes.cpp
257    database/DatabaseCommand_FileMTimes.cpp
258    database/DatabaseCommand_GenericSelect.cpp
259    database/DatabaseCommand_LoadAllAutoPlaylists.cpp
260    database/DatabaseCommand_LoadAllPlaylists.cpp
261    database/DatabaseCommand_LoadAllSortedPlaylists.cpp
262    database/DatabaseCommand_LoadAllSources.cpp
263    database/DatabaseCommand_LoadAllStations.cpp
264    database/DatabaseCommand_LoadDynamicPlaylist.cpp
265    database/DatabaseCommand_LoadDynamicPlaylistEntries.cpp
266    database/DatabaseCommand_LoadFiles.cpp
267    database/DatabaseCommand_LoadInboxEntries.cpp
268    database/DatabaseCommand_LoadOps.cpp
269    database/DatabaseCommand_LoadPlaylistEntries.cpp
270    database/DatabaseCommand_LoadSocialActions.cpp
271    database/DatabaseCommand_LoadTrackAttributes.cpp
272    database/DatabaseCommand_LogPlayback.cpp
273    database/DatabaseCommand_ModifyInboxEntry.cpp
274    database/DatabaseCommand_ModifyPlaylist.cpp
275    database/DatabaseCommand_NetworkCharts.cpp
276    database/DatabaseCommand_PlaybackCharts.cpp
277    database/DatabaseCommand_PlaybackHistory.cpp
278    database/DatabaseCommand_RenamePlaylist.cpp
279    database/DatabaseCommand_Resolve.cpp
280    database/DatabaseCommand_SetCollectionAttributes.cpp
281    database/DatabaseCommand_SetDynamicPlaylistRevision.cpp
282    database/DatabaseCommand_SetPlaylistRevision.cpp
283    database/DatabaseCommand_SetTrackAttributes.cpp
284    database/DatabaseCommand_ShareTrack.cpp
285    database/DatabaseCommand_SocialAction.cpp
286    database/DatabaseCommand_SourceOffline.cpp
287    database/DatabaseCommand_TrackAttributes.cpp
288    database/DatabaseCommand_TrackStats.cpp
289    database/DatabaseCommand_TrendingArtists.cpp
290    database/DatabaseCommand_TrendingTracks.cpp
291    database/DatabaseCommand_UpdateSearchIndex.cpp
292    database/DatabaseCommandLoggable.cpp
293    database/IdThreadWorker.cpp
294    database/TomahawkSqlQuery.cpp
295
296    infosystem/InfoSystem.cpp
297    infosystem/InfoSystemCache.cpp
298    infosystem/InfoSystemWorker.cpp
299
300    filemetadata/MusicScanner.cpp
301    filemetadata/ScanManager.cpp
302    filemetadata/taghandlers/tag.cpp
303    filemetadata/taghandlers/apetag.cpp
304    filemetadata/taghandlers/asftag.cpp
305    filemetadata/taghandlers/id3v1tag.cpp
306    filemetadata/taghandlers/id3v2tag.cpp
307    filemetadata/taghandlers/mp4tag.cpp
308    filemetadata/taghandlers/oggtag.cpp
309    filemetadata/MetadataEditor.cpp
310
311    network/acl/AclRegistry.cpp
312    network/acl/AclRequest.cpp
313    network/BufferIoDevice.cpp
314    network/Msg.cpp
315    network/MsgProcessor.cpp
316    network/StreamConnection.cpp
317    network/DbSyncConnection.cpp
318    network/RemoteCollection.cpp
319    network/PortFwdThread.cpp
320    network/Servent.cpp
321    network/Connection.cpp
322    network/ControlConnection.cpp
323    network/QTcpSocketExtra.cpp
324    network/ConnectionManager.cpp
325
326    playlist/PlaylistUpdaterInterface.cpp
327    playlist/PlaylistTemplate.cpp
328    playlist/XspfPlaylistTemplate.cpp
329    playlist/dynamic/DynamicPlaylist.cpp
330    playlist/dynamic/GeneratorFactory.cpp
331    playlist/dynamic/GeneratorInterface.cpp
332    playlist/dynamic/DynamicPlaylistRevision.cpp
333    playlist/XspfUpdater.cpp
334    playlist/dynamic/database/DatabaseGenerator.cpp
335    playlist/dynamic/database/DatabaseControl.cpp
336    playlist/dynamic/DynamicControl.cpp
337
338    resolvers/ExternalResolver.cpp
339    resolvers/Resolver.cpp
340    resolvers/ScriptCommand_AllArtists.cpp
341    resolvers/ScriptCommand_AllAlbums.cpp
342    resolvers/ScriptCommand_AllTracks.cpp
343    resolvers/ScriptCommand_LookupUrl.cpp
344    resolvers/ScriptCommandQueue.cpp
345    resolvers/ScriptPluginFactory.cpp
346
347    # ScriptPlugins
348    resolvers/ScriptCollection.cpp
349    resolvers/plugins/ScriptCollectionFactory.cpp
350    resolvers/ScriptInfoPlugin.cpp
351    resolvers/plugins/ScriptInfoPluginFactory.cpp
352
353
354    sip/SipPlugin.cpp
355    sip/SipInfo.cpp
356    sip/PeerInfo.cpp
357    sip/SipStatusMessage.cpp
358
359    utils/Cloudstream.cpp
360    utils/Json.cpp
361    utils/TomahawkUtils.cpp
362    utils/Logger.cpp
363    utils/XspfLoader.cpp
364    utils/TomahawkCache.cpp
365    utils/GuiHelpers.cpp
366    utils/WeakObjectHash.cpp
367    utils/WeakObjectList.cpp
368    utils/WebPopup.cpp
369    utils/PluginLoader.cpp
370)
371
372add_subdirectory( accounts/configstorage )
373
374IF(LIBLASTFM_FOUND)
375    include_directories( ${LIBLASTFM_INCLUDE_DIRS} )
376    list(APPEND LINK_LIBRARIES ${LIBLASTFM_LIBRARIES} )
377    list(APPEND libSources
378        accounts/lastfm/LastFmAccount.cpp
379        accounts/lastfm/LastFmConfig.cpp
380        accounts/lastfm/LastFmInfoPlugin.cpp
381    )
382ENDIF(LIBLASTFM_FOUND)
383
384set( libUI ${libUI}
385    widgets/HeaderWidget.ui
386    viewpages/SearchViewPage.ui
387    viewpages/SourceViewPage.ui
388    viewpages/ArtistViewPage.ui
389    viewpages/AlbumViewPage.ui
390    viewpages/TrackViewPage.ui
391    playlist/QueueView.ui
392    filemetadata/MetadataEditor.ui
393    accounts/AccountFactoryWrapper.ui
394    accounts/spotify/SpotifyAccountConfig.ui
395    accounts/lastfm/LastFmConfig.ui
396)
397
398include_directories(
399    ${CMAKE_CURRENT_BINARY_DIR}
400    ${CMAKE_CURRENT_SOURCE_DIR}
401
402    ${QT_INCLUDE_DIR}
403    ${QJSON_INCLUDE_DIR}
404    ${LUCENEPP_INCLUDE_DIRS}
405    ${LIBVLC_INCLUDE_DIR}
406    ${Boost_INCLUDE_DIR}
407
408    ${LIBPORTFWD_INCLUDE_DIR}
409    ${QUAZIP_INCLUDE_DIRS}
410    ${QTKEYCHAIN_INCLUDE_DIRS}
411)
412
413IF(LIBATTICA_FOUND)
414    SET( libGuiSources ${libGuiSources} AtticaManager.cpp )
415    INCLUDE_DIRECTORIES( ${LIBATTICA_INCLUDE_DIR} )
416    LIST(APPEND PRIVATE_LINK_LIBRARIES ${LIBATTICA_LIBRARIES} ${LibAttica_LIBRARIES} ${QUAZIP_LIBRARIES})
417    LIST(APPEND LINK_LIBRARIES KF5::Attica)
418ENDIF(LIBATTICA_FOUND)
419
420if(HAVE_X11)
421    list(APPEND LINK_LIBRARIES Qt5::X11Extras)
422endif()
423
424IF( WIN32 )
425    SET( OS_SPECIFIC_LINK_LIBRARIES
426        ${OS_SPECIFIC_LINK_LIBRARIES}
427    # System
428        "iphlpapi.a"
429        "ws2_32.dll"
430        "dnsapi.dll"
431        "dsound.dll"
432        "winmm.dll"
433        "advapi32.dll"
434        "shlwapi.dll"
435    )
436ENDIF( WIN32 )
437
438IF( APPLE )
439    FIND_LIBRARY( COREAUDIO_LIBRARY CoreAudio )
440    FIND_LIBRARY( COREFOUNDATION_LIBRARY CoreFoundation )
441    FIND_LIBRARY( FOUNDATION_LIBRARY Foundation )
442    FIND_LIBRARY( SCRIPTINGBRIDGE_LIBRARY ScriptingBridge )
443    MARK_AS_ADVANCED( COREAUDIO_LIBRARY COREFOUNDATION_LIBRARY FOUNDATION_LIBRARY SCRIPTINGBRIDGE_LIBRARY )
444
445    SET( CMAKE_SHARED_LINKER_FLAGS "-headerpad_max_install_names ${CMAKE_SHARED_LINKER_FLAGS}" )
446
447    SET( libSources ${libSources}
448      utils/TomahawkUtils_Mac.mm
449      mac/FileHelpers.mm
450      widgets/SourceTreePopupDialog_mac.mm )
451
452    list(APPEND libSources
453      thirdparty/Qocoa/qbutton_mac.mm
454      thirdparty/Qocoa/qsearchfield_mac.mm
455      thirdparty/Qocoa/qtoolbartabdialog.cpp
456    )
457
458    SET_SOURCE_FILES_PROPERTIES(utils/TomahawkUtils_Mac.mm PROPERTIES COMPILE_FLAGS "-fvisibility=default")
459
460    SET( OS_SPECIFIC_LINK_LIBRARIES
461        ${OS_SPECIFIC_LINK_LIBRARIES}
462        # System
463        ${COREAUDIO_LIBRARY}
464        ${COREFOUNDATION_LIBRARY}
465        ${FOUNDATION_LIBRARY}
466	${SCRIPTINGBRIDGE_LIBRARY}
467
468        /System/Library/Frameworks/AppKit.framework
469        /System/Library/Frameworks/Security.framework
470    )
471ELSE( APPLE )
472    SET( libGuiSources ${libGuiSources} thirdparty/Qocoa/qbutton.cpp thirdparty/Qocoa/qsearchfield.cpp thirdparty/Qocoa/qtoolbartabdialog.cpp )
473ENDIF( APPLE )
474
475IF(BUILD_GUI)
476    LIST(APPEND libSources ${libGuiSources} )
477ENDIF()
478
479qt5_wrap_ui(libUI_H ${libUI})
480
481SET( libSources ${libSources} ${libUI_H} )
482
483add_library( ${TOMAHAWK_LIBRARY} SHARED ${libSources})
484set_target_properties(
485    ${TOMAHAWK_LIBRARY}
486        PROPERTIES
487            AUTOMOC TRUE
488            VERSION ${TOMAHAWK_VERSION_SHORT}
489            SOVERSION ${TOMAHAWK_VERSION_SHORT}
490            OUTPUT_NAME ${TOMAHAWK_BASE_TARGET_NAME}
491)
492
493target_link_libraries(${TOMAHAWK_LIBRARY} PUBLIC
494    Qt5::Widgets Qt5::Network Qt5::Sql Qt5::WebKitWidgets Qt5::Concurrent Qt5::Xml Qt5::UiTools Qt5::Svg
495)
496if(APPLE)
497    target_link_libraries(${TOMAHAWK_LIBRARY} PRIVATE Qt5::MacExtras)
498endif()
499
500IF(QCA2_FOUND)
501    INCLUDE_DIRECTORIES( ${QCA2_INCLUDE_DIR} )
502    LIST(APPEND LINK_LIBRARIES ${QCA2_LIBRARIES} )
503ENDIF(QCA2_FOUND)
504
505IF( UNIX AND NOT APPLE )
506    LIST(APPEND LINK_LIBRARIES ${QT_QTDBUS_LIBRARIES} )
507ENDIF( UNIX AND NOT APPLE )
508
509TARGET_LINK_LIBRARIES(${TOMAHAWK_LIBRARY} PRIVATE
510    ${LIBVLC_LIBRARY}
511
512    # Thirdparty shipped with tomahawk
513    ${LIBPORTFWD_LIBRARIES}
514    ${QTKEYCHAIN_LIBRARIES}
515    ${PRIVATE_LINK_LIBRARIES}
516
517    PUBLIC
518    # External deps
519    ${QJSON_LIBRARIES}
520    ${LUCENEPP_LIBRARIES}
521    ${QT_QTSQL_LIBRARY}
522    ${QT_QTUITOOLS_LIBRARY}
523    ${QT_QTGUI_LIBRARY}
524    ${QT_QTWEBKIT_LIBRARY}
525    ${QT_QTSCRIPT_LIBRARY}
526    ${QT_QTNETWORK_LIBRARY}
527    ${QT_QTXML_LIBRARY}
528    ${QT_QTSVG_LIBRARY}
529    ${QT_QTCORE_LIBRARY}
530    ${OS_SPECIFIC_LINK_LIBRARIES}
531    ${CMAKE_THREAD_LIBS_INIT}
532    ${LINK_LIBRARIES}
533)
534
535# TagLib
536TARGET_LINK_LIBRARIES(${TOMAHAWK_LIBRARY} LINK_PUBLIC ${TAGLIB_LIBRARIES})
537TARGET_INCLUDE_DIRECTORIES(${TOMAHAWK_LIBRARY} PUBLIC ${TAGLIB_INCLUDES})
538
539INSTALL( TARGETS ${TOMAHAWK_LIBRARY}
540    EXPORT TomahawkLibraryDepends
541    RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
542    LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
543    ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
544)
545
546# Install header files
547file( GLOB rootHeaders "*.h" )
548file( GLOB accountsHeaders "accounts/*.h" )
549file( GLOB accountsLastfmHeaders "accounts/lastfm/*.h" )
550file( GLOB accountsSpotifyHeaders "accounts/spotify/*.h" )
551file( GLOB audioHeaders "audio/*.h" )
552file( GLOB collectionHeaders "collection/*.h" )
553file( GLOB contextHeaders "context/*.h" )
554file( GLOB contextPagesHeaders "context/pages/*.h" )
555file( GLOB databaseHeaders "database/*.h" )
556file( GLOB filemetadataHeaders "filemetadata/*.h" )
557file( GLOB filemetadataTaghandlersHeaders "filemetadata/taghandlers/*.h" )
558file( GLOB infosystemHeaders "infosystem/*.h" )
559file( GLOB jobviewHeaders "jobview/*.h" )
560file( GLOB networkHeaders "network/*.h" )
561file( GLOB playlistHeaders "playlist/*.h" )
562file( GLOB playlistDynamicHeaders "playlist/dynamic/*.h" )
563file( GLOB playlistDynamicDatabaseHeaders "playlist/dynamic/database/*.h" )
564# file( GLOB playlistDynamicEchonestHeaders "playlist/dynamic/echonest/*.h" )
565file( GLOB playlistDynamicWidgetsHeaders "playlist/dynamic/widgets/*.h" )
566file( GLOB resolversHeaders "resolvers/*.h" )
567file( GLOB sipHeaders "sip/*.h" )
568file( GLOB thirdpartyKdsingleapplicationguardHeaders "thirdparty/kdsingleapplicationguard/*.h" )
569file( GLOB thirdpartyQocoaHeaders "thirdparty/Qocoa/*.h" )
570file( GLOB utilsHeaders "utils/*.h" )
571file( GLOB widgetsHeaders "widgets/*.h" )
572file( GLOB viewpagesHeaders "viewpages/*.h" )
573file( GLOB widgetsSearchlineeditHeaders "widgets/searchlineedit/*.h" )
574
575install( FILES ${CMAKE_CURRENT_BINARY_DIR}/config.h DESTINATION include/libtomahawk )
576install( FILES ${rootHeaders} DESTINATION include/libtomahawk )
577install( FILES ${accountsHeaders} DESTINATION include/libtomahawk/accounts )
578install( FILES ${accountsLastfmHeaders} DESTINATION include/libtomahawk/accounts/lastfm )
579install( FILES ${accountsSpotifyHeaders} DESTINATION include/libtomahawk/accounts/spotify )
580install( FILES ${audioHeaders} DESTINATION include/libtomahawk/audio )
581install( FILES ${collectionHeaders} DESTINATION include/libtomahawk/collection )
582install( FILES ${contextHeaders} DESTINATION include/libtomahawk/context )
583install( FILES ${contextPagesHeaders} DESTINATION include/libtomahawk/context/pages )
584install( FILES ${databaseHeaders} DESTINATION include/libtomahawk/database )
585install( FILES ${filemetadataHeaders} DESTINATION include/libtomahawk/filemetadata )
586install( FILES ${filemetadataTaghandlersHeaders} DESTINATION include/libtomahawk/filemetadata/taghandlers )
587install( FILES ${infosystemHeaders} DESTINATION include/libtomahawk/infosystem )
588install( FILES ${jobviewHeaders} DESTINATION include/libtomahawk/jobview )
589install( FILES ${networkHeaders} DESTINATION include/libtomahawk/network )
590install( FILES ${playlistHeaders} DESTINATION include/libtomahawk/playlist )
591install( FILES ${playlistDynamicHeaders} DESTINATION include/libtomahawk/playlist/dynamic )
592install( FILES ${playlistDynamicDatabaseHeaders} DESTINATION include/libtomahawk/playlist/dynamic/database )
593# install( FILES ${playlistDynamicEchonestHeaders} DESTINATION include/libtomahawk/playlist/dynamic/echonest )
594install( FILES ${playlistDynamicWidgetsHeaders} DESTINATION include/libtomahawk/playlist/dynamic/widgets )
595install( FILES ${resolversHeaders} DESTINATION include/libtomahawk/resolvers )
596install( FILES ${sipHeaders} DESTINATION include/libtomahawk/sip )
597install( FILES ${thirdpartyKdsingleapplicationguardHeaders} DESTINATION include/libtomahawk/thirdparty/kdsingleapplicationguard )
598install( FILES ${thirdpartyQocoaHeaders} DESTINATION include/libtomahawk/thirdparty/Qocoa )
599install( FILES ${utilsHeaders} DESTINATION include/libtomahawk/utils )
600install( FILES ${widgetsHeaders} DESTINATION include/libtomahawk/widgets )
601install( FILES ${viewpagesHeaders} DESTINATION include/libtomahawk/viewpages )
602install( FILES ${widgetsSearchlineeditHeaders} DESTINATION include/libtomahawk/widgets/searchlineedit )