1
add_definitions(${TAGLIB_CFLAGS} ${TAGLIB-EXTRAS_CFLAGS})
2
3
if(APPLE)
4
    set(mac_SRCS
5
        app_mac.cpp
6
        mac/GrowlInterface.cpp
7
    )
8
9
    include_directories ( services/lastfm/ )
10
    set( MAC_FILES_DIR  ${CMAKE_SOURCE_DIR}/src/mac )
11
endif(APPLE)
12
13
add_subdirectory( core )
14
add_subdirectory( core-impl/collections )
15
#dont use our own libplasma anymore, but still pick up our applets/engines/containments
16
add_subdirectory( context )
17
add_subdirectory( images )
18
add_subdirectory( services )
19
add_subdirectory( scripts )
20
add_subdirectory( themes )
21
add_subdirectory( aboutdialog/libattica-ocsclient )
22
23
if( STRIGI_FOUND )
24
    add_subdirectory( strigi )
25
endif( STRIGI_FOUND )
26
27
include_directories(
28
    ${CMAKE_SOURCE_DIR}
29
    aboutdialog
30
    aboutdialog/libattica-ocsclient
31
    amarokurls
32
    browsers/
33
    browsers/playlistbrowser
34
    browsers/servicebrowser
35
    browsers/servicebrowser/scriptableservice
36
    core-impl/collections
37
    core-impl/collections/support
38
    core-impl/collections/mediadevicecollection
39
    core-impl/collections/mediadevicecollection/handler  # for Handler
40
    core-impl/collections/mediadevicecollection/support  # for MediaDeviceInfo
41
    core-impl/collections/mediadevicecollection/playlist # for MediaDevicePlaylist etc.
42
    core-impl/collections/mediadevicecollection/podcast
43
    configdialog
44
    configdialog/dialogs
45
    context
46
    context/widgets
47
    context/widgets/appletexplorer/
48
    dbus
49
    dialogs
50
    dynamic
51
    likeback
52
    network
53
    playlistmanager
54
    statusbar
55
    synchronization
56
    timecode
57
    widgets
58
    ${KDE4_INCLUDE_DIR}
59
    ${TAGLIB-EXTRAS_INCLUDE_DIR}
60
    ${TAGLIB-EXTRAS_INCLUDES}
61
    ${QT_INCLUDES}
62
    ${QT_QTSCRIPT_INCLUDE_DIR}
63
    ${QCA2_INCLUDE_DIR}
64
)
65
66
67
if ( KDEMULTIMEDIA_FOUND )
68
    include_directories( ${KDEMULTIMEDIA_INCLUDE_DIR} )
69
endif ( KDEMULTIMEDIA_FOUND )
70
71
#####################################################################
72
# LIKEBACK
73
#####################################################################
74
set(likeback_SRCS
75
    likeback/LikeBack.cpp
76
    likeback/LikeBackBar.cpp
77
    likeback/LikeBackDialog.cpp
78
)
79
80
#####################################################################
81
# PROXYCOLLECTION
82
#####################################################################
83
set(libproxycollection_SRCS
84
    core-impl/collections/proxycollection/ProxyCollection.cpp
85
    core-impl/collections/proxycollection/ProxyCollectionMeta.cpp
86
    core-impl/collections/proxycollection/ProxyCollectionQueryMaker.cpp
87
)
88
89
#####################################################################
90
# MEDIADEVICEFRAMEWORK
91
#####################################################################
92
set(libmediadeviceframework_SRCS
93
  core-impl/collections/mediadevicecollection/MediaDeviceCollection.cpp
94
  core-impl/collections/mediadevicecollection/MediaDeviceCollectionLocation.cpp
95
  core-impl/collections/mediadevicecollection/MediaDeviceMeta.cpp
96
  core-impl/collections/mediadevicecollection/MediaDeviceCollectionCapability.cpp
97
  core-impl/collections/mediadevicecollection/MediaDeviceDecoratorCapability.cpp
98
  core-impl/collections/mediadevicecollection/handler/MediaDeviceHandler.cpp
99
  core-impl/collections/mediadevicecollection/handler/MediaDeviceHandlerCapability.cpp
100
  core-impl/collections/mediadevicecollection/handler/capabilities/ArtworkCapability.cpp
101
  core-impl/collections/mediadevicecollection/handler/capabilities/CustomReadCapability.cpp
102
  core-impl/collections/mediadevicecollection/handler/capabilities/PlaylistCapability.cpp
103
  core-impl/collections/mediadevicecollection/handler/capabilities/PodcastCapability.cpp
104
  core-impl/collections/mediadevicecollection/handler/capabilities/ReadCapability.cpp
105
  core-impl/collections/mediadevicecollection/handler/capabilities/ReadCapabilityBase.cpp
106
  core-impl/collections/mediadevicecollection/handler/capabilities/WriteCapability.cpp
107
  core-impl/collections/mediadevicecollection/handler/capabilities/WriteCapabilityBase.cpp
108
  core-impl/collections/mediadevicecollection/playlist/MediaDevicePlaylist.cpp
109
  core-impl/collections/mediadevicecollection/playlist/MediaDeviceUserPlaylistProvider.cpp
110
  core-impl/collections/mediadevicecollection/podcast/MediaDevicePodcastProvider.cpp
111
  core-impl/collections/mediadevicecollection/support/ConnectionAssistant.cpp
112
  core-impl/collections/mediadevicecollection/support/MediaDeviceInfo.cpp
113
)
114
115
#####################################################################
116
# SERVICEFRAMEWORK
117
#####################################################################
118
set(libserviceframework_SRCS
119
    services/DynamicServiceQueryMaker.cpp
120
    services/InfoParserBase.cpp
121
    services/ServiceAlbumCoverDownloader.cpp
122
    services/ServiceBase.cpp
123
    services/ServiceCapabilities.cpp
124
    services/ServiceCollection.cpp
125
    services/ServiceCollectionLocation.cpp
126
    services/ServiceCollectionTreeView.cpp
127
    services/ServiceMetaBase.cpp
128
    services/ServicePluginManager.cpp
129
    services/ServiceSqlCollection.cpp
130
    services/ServiceSqlQueryMaker.cpp
131
    services/ServiceSqlRegistry.cpp
132
)
133
134
#####################################################################
135
# SERVICEBROWSER
136
#####################################################################
137
set(libservicebrowser_SRCS
138
    browsers/servicebrowser/ServiceBrowser.cpp
139
)
140
141
#####################################################################
142
# AMAROKURL
143
#####################################################################
144
set(libamarokurl_SRCS
145
    amarokurls/AmarokUrl.cpp
146
    amarokurls/AmarokUrlAction.cpp
147
    amarokurls/AmarokUrlHandler.cpp
148
    amarokurls/BookmarkCurrentButton.cpp
149
    amarokurls/ContextUrlGenerator.cpp
150
    amarokurls/ContextUrlRunner.cpp
151
    amarokurls/NavigationUrlRunner.cpp
152
    amarokurls/NavigationUrlGenerator.cpp
153
    amarokurls/PlayUrlRunner.cpp
154
    amarokurls/PlayUrlGenerator.cpp
155
    amarokurls/BookmarkManager.cpp
156
    amarokurls/BookmarkManagerWidget.cpp
157
    amarokurls/BookmarkGroup.cpp
158
    amarokurls/BookmarkModel.cpp
159
    amarokurls/BookmarkTreeView.cpp
160
    amarokurls/BookmarkMetaActions.cpp
161
    )
162
163
#####################################################################
164
# SCRIPTABLESERVICE
165
#####################################################################
166
set(libscriptableservice_SRCS
167
    services/scriptable/ScriptableService.cpp
168
    services/scriptable/ScriptableServiceCollection.cpp
169
    services/scriptable/ScriptableServiceInfoParser.cpp
170
    services/scriptable/ScriptableServiceManager.cpp
171
    services/scriptable/ScriptableServiceMeta.cpp
172
    services/scriptable/ScriptableServiceQueryMaker.cpp
173
)
174
175
#####################################################################
176
# CONFIGDIALOG
177
#####################################################################
178
set(libconfigdialog_SRCS
179
    configdialog/ConfigDialog.cpp
180
    configdialog/ConfigDialogBase.cpp
181
    configdialog/dialogs/CollectionConfig.cpp
182
    configdialog/dialogs/GeneralConfig.cpp
183
    configdialog/dialogs/NotificationsConfig.cpp
184
    configdialog/dialogs/PlaybackConfig.cpp
185
    configdialog/dialogs/ServiceConfig.cpp
186
    configdialog/dialogs/DatabaseConfig.cpp
187
)
188
189
kde4_add_ui_files(libconfigdialog_SRCS
190
    configdialog/dialogs/CollectionConfig.ui
191
    configdialog/dialogs/GeneralConfig.ui
192
    configdialog/dialogs/NotificationsConfig.ui
193
    configdialog/dialogs/PlaybackConfig.ui
194
    configdialog/dialogs/DatabaseConfig.ui
195
)
196
197
set(libbrowserframework_SRCS
198
    browsers/BrowserBreadcrumbItem.cpp
199
    browsers/BrowserBreadcrumbWidget.cpp
200
    browsers/BrowserCategory.cpp
201
    browsers/BrowserCategoryList.cpp
202
    browsers/BrowserCategoryListDelegate.cpp
203
    browsers/BrowserCategoryListModel.cpp
204
    browsers/BrowserCategoryListSortFilterProxyModel.cpp
205
    browsers/BrowserDock.cpp
206
    browsers/CollectionSortFilterProxyModel.cpp
207
    browsers/CollectionTreeItem.cpp
208
    browsers/CollectionTreeItemModel.cpp
209
    browsers/CollectionTreeItemModelBase.cpp
210
    browsers/CollectionTreeView.cpp
211
    browsers/InfoProxy.cpp
212
    browsers/SingleCollectionTreeItemModel.cpp
213
)
214
215
#####################################################################
216
# COLLECTIONBROWSER
217
#####################################################################
218
set(libcollectionbrowser_SRCS
219
    browsers/collectionbrowser/CollectionTreeItemDelegate.cpp
220
    browsers/collectionbrowser/CollectionBrowserTreeView.cpp
221
    browsers/collectionbrowser/CollectionWidget.cpp
222
)
223
224
#####################################################################
225
# SYNCHRONIZATION
226
#####################################################################
227
set(libsynchronization_SRCS
228
    synchronization/MasterSlaveSynchronizationJob.cpp
229
    synchronization/OneWaySynchronizationJob.cpp
230
    synchronization/SynchronizationBaseJob.cpp
231
    synchronization/UnionJob.cpp
232
)
233
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
248
#)
249
250
#####################################################################
251
# STATUSBAR
252
#####################################################################
253
set(libstatusbar_SRCS
254
    statusbar/StatusBar.cpp
255
    statusbar/ProgressBar.cpp
256
    statusbar/KJobProgressBar.cpp
257
    statusbar/NetworkProgressBar.cpp
258
    statusbar/CompoundProgressBar.cpp
259
    statusbar/PopupWidget.cpp
260
    statusbar/LongMessageWidget.cpp
261
)
262
263
264
#####################################################################
265
# META
266
#####################################################################
267
set(libmetaimpl_SRCS
268
    core-impl/playlists/types/file/m3u/M3UPlaylist.cpp
269
    core-impl/meta/file/TagLibUtils.cpp
270
    ../shared/MetaReplayGain.cpp
271
    core-impl/playlists/types/file/pls/PLSPlaylist.cpp
272
    core-impl/playlists/providers/user/UserPlaylistProvider.cpp
273
    core-impl/playlists/types/file/PlaylistFileSupport.cpp
274
    core-impl/playlists/types/file/xspf/XSPFPlaylist.cpp
275
    core-impl/capabilities/timecode/TimecodeBoundedPlaybackCapability.cpp
276
    core-impl/capabilities/timecode/TimecodeEditCapability.cpp
277
    core-impl/capabilities/timecode/TimecodeLoadCapability.cpp
278
    core-impl/capabilities/timecode/TimecodeWriteCapability.cpp
279
    core-impl/capabilities/multisource/MultiSourceCapabilityImpl.cpp
280
    core-impl/meta/file/File.cpp
281
    core-impl/meta/multi/MultiTrack.cpp
282
    core-impl/meta/cue/CueFileSupport.cpp
283
    core-impl/meta/proxy/MetaProxy.cpp
284
    core-impl/meta/stream/Stream.cpp
285
    core-impl/statistics/providers/url/PermanentUrlStatisticsProvider.cpp
286
    core-impl/statistics/providers/tag/TagStatisticsProvider.cpp
287
)
288
289
#####################################################################
290
# COLLECTION
291
#####################################################################
292
set(collection_SRCS
293
    core-impl/collections/support/CollectionManager.cpp
294
    core-impl/collections/support/CollectionLocationDelegateImpl.cpp
295
    core-impl/collections/support/MemoryCustomValue.cpp
296
    core-impl/collections/support/MemoryFilter.cpp
297
    core-impl/collections/support/MemoryMatcher.cpp
298
    core-impl/collections/support/MemoryQueryMaker.cpp
299
    core-impl/collections/support/MemoryQueryMakerInternal.cpp
300
    core-impl/collections/support/MemoryQueryMakerHelper.cpp
301
    core-impl/collections/support/PlaylistCollection.cpp
302
    core-impl/collections/support/PlaylistCollectionLocation.cpp
303
    core-impl/collections/support/TrashCollectionLocation.cpp
304
    core-impl/collections/support/XmlQueryReader.cpp
305
    core-impl/collections/support/XmlQueryWriter.cpp
306
    core-impl/collections/support/FileCollectionLocation.cpp
307
)
308
309
#####################################################################
310
# CONTEXT
311
#####################################################################
312
#
313
314
set( libcontextview_SRCS
315
    context/Applet.cpp
316
    context/Containment.cpp
317
    context/ContextObserver.cpp
318
    context/ContextScene.cpp
319
    context/ContextDock.cpp
320
    context/ContextView.cpp
321
    context/LyricsManager.cpp
322
    context/ToolbarView.cpp
323
    context/layouts/ContextLayout.cpp
324
    context/layouts/VerticalLayout.cpp
325
    context/toolbar/AppletItemOverlay.cpp
326
    context/toolbar/AppletToolbar.cpp
327
    context/toolbar/AppletToolbarAddItem.cpp
328
    context/toolbar/AppletToolbarAppletItem.cpp
329
    context/toolbar/AppletToolbarBase.cpp
330
    context/toolbar/AppletToolbarConfigItem.cpp
331
    context/widgets/AmarokWebView.cpp
332
    context/widgets/RatingWidget.cpp
333
    context/widgets/TextScrollingWidget.cpp
334
    context/widgets/DropPixmapItem.cpp
335
    context/widgets/ToolBoxIcon.cpp
336
    context/widgets/ContainmentArrow.cpp
337
    context/widgets/ContainmentSelectionLayer.cpp
338
    context/widgets/appletexplorer/AppletExplorer.cpp
339
    context/widgets/appletexplorer/AppletIcon.cpp
340
    context/widgets/appletexplorer/AppletItemModel.cpp
341
    context/widgets/appletexplorer/AppletsList.cpp
342
    context/widgets/TrackWidget.cpp
343
)
344
345
#####################################################################
346
# PODCASTS
347
#####################################################################
348
set(libpodcasts_SRCS
349
    core-impl/podcasts/sql/SqlPodcastMeta.cpp
350
    core-impl/podcasts/sql/SqlPodcastProvider.cpp
351
    core-impl/podcasts/sql/PodcastSettingsDialog.cpp
352
)
353
354
#####################################################################
355
# PLAYLISTBROWSER
356
#####################################################################
357
set(libplaylistbrowser_SRCS
358
    browsers/playlistbrowser/APGCategory.cpp
359
    browsers/playlistbrowser/DynamicModel.cpp
360
    browsers/playlistbrowser/DynamicCategory.cpp
361
    browsers/playlistbrowser/DynamicBiasDelegate.cpp
362
    browsers/playlistbrowser/DynamicBiasModel.cpp
363
    browsers/playlistbrowser/DynamicBiasWidgets.cpp
364
    browsers/playlistbrowser/PlaylistBrowserModel.cpp
365
    browsers/playlistbrowser/PlaylistBrowserCategory.cpp
366
    browsers/playlistbrowser/QtGroupingProxy.cpp
367
    browsers/playlistbrowser/PlaylistBrowser.cpp
368
    browsers/playlistbrowser/PlaylistBrowserView.cpp
369
    browsers/playlistbrowser/UserPlaylistCategory.cpp
370
    browsers/playlistbrowser/PlaylistsInFoldersProxy.cpp
371
    browsers/playlistbrowser/PlaylistTreeItemDelegate.cpp
372
    browsers/playlistbrowser/PlaylistsByProviderProxy.cpp
373
    browsers/playlistbrowser/PodcastModel.cpp
374
    browsers/playlistbrowser/PodcastCategory.cpp
375
    browsers/playlistbrowser/UserPlaylistModel.cpp
376
)
377
378
#####################################################################
379
# PLAYLISTMANAGER
380
#####################################################################
381
set(libplaylistmanager_SRCS
382
    playlistmanager/PlaylistManager.cpp
383
    playlistmanager/file/PlaylistFileProvider.cpp
384
    playlistmanager/file/KConfigSyncRelStore.cpp
385
    playlistmanager/sql/SqlUserPlaylistProvider.cpp
386
    playlistmanager/sql/SqlPlaylist.cpp
387
    playlistmanager/sql/SqlPlaylistGroup.cpp
388
    playlistmanager/SyncedPlaylist.cpp
389
    playlistmanager/SyncRelationStorage.cpp
390
)
391
392
#####################################################################
393
# TOOLTIPS
394
#####################################################################
395
set(libtooltip_SRCS
396
    playlist/view/tooltips/AmarokToolTip.cpp
397
    playlist/view/tooltips/KToolTip.cpp
398
    playlist/view/tooltips/KToolTipDelegate.cpp
399
    playlist/view/tooltips/KToolTipItem.cpp
400
    playlist/view/tooltips/KFormattedBalloonTipDelegate.cpp
401
    playlist/view/tooltips/ToolTipManager.cpp
402
)
403
404
#####################################################################
405
# PLAYLIST
406
#####################################################################
407
set(libplaylist_SRCS
408
    playlist/PlaylistActions.cpp
409
    playlist/PlaylistBreadcrumbItem.cpp
410
    playlist/PlaylistBreadcrumbItemSortButton.cpp
411
    playlist/PlaylistBreadcrumbLevel.cpp
412
    playlist/PlaylistController.cpp
413
    playlist/PlaylistItem.cpp
414
    playlist/PlaylistModel.cpp
415
    playlist/PlaylistModelStack.cpp
416
    playlist/PlaylistSortWidget.cpp
417
    playlist/PlaylistViewUrlGenerator.cpp
418
    playlist/PlaylistViewUrlRunner.cpp
419
    playlist/PlaylistDock.cpp
420
    playlist/ProgressiveSearchWidget.cpp
421
    playlist/UndoCommands.cpp
422
    playlist/layouts/LayoutEditDialog.cpp
423
    playlist/layouts/LayoutEditWidget.cpp
424
    playlist/layouts/LayoutConfigAction.cpp
425
    playlist/layouts/LayoutItemConfig.cpp
426
    playlist/layouts/LayoutManager.cpp
427
    playlist/layouts/PlaylistLayoutEditDialog.cpp
428
    playlist/navigators/AlbumNavigator.cpp
429
    playlist/navigators/DynamicTrackNavigator.cpp
430
    playlist/navigators/FavoredRandomTrackNavigator.cpp
431
    playlist/navigators/NavigatorConfigAction.cpp
432
    playlist/navigators/NonlinearTrackNavigator.cpp
433
    playlist/navigators/RandomAlbumNavigator.cpp
434
    playlist/navigators/RandomTrackNavigator.cpp
435
    playlist/navigators/RepeatAlbumNavigator.cpp
436
    playlist/navigators/RepeatTrackNavigator.cpp
437
    playlist/navigators/StandardTrackNavigator.cpp
438
    playlist/navigators/TrackNavigator.cpp
439
    playlist/view/PlaylistViewCommon.cpp
440
    playlist/view/listview/InlineEditorWidget.cpp
441
    playlist/view/listview/PrettyItemDelegate.cpp
442
    playlist/view/listview/PrettyListView.cpp
443
    playlist/view/listview/SourceSelectionPopup.cpp
444
    playlist/proxymodels/GroupingProxy.cpp
445
    playlist/proxymodels/ProxyBase.cpp
446
    playlist/proxymodels/SortAlgorithms.cpp
447
    playlist/proxymodels/SortFilterProxy.cpp
448
    playlist/proxymodels/SortScheme.cpp
449
    playlist/proxymodels/SearchProxy.cpp
450
)
451
452
#####################################################################
453
# AUDIO CD SUPPORT
454
#####################################################################
455
456
if(KDEMULTIMEDIA_FOUND)
457
    set(audiocdsupport_SRCS
458
        core-impl/meta/cdda/AudioCdTrackProvider.cpp
459
        core-impl/meta/cdda/AudioCdTrackProvider_p.cpp
460
       )
461
endif(KDEMULTIMEDIA_FOUND)
462
463
#####################################################################
464
# DYNAMIC
465
#####################################################################
466
set(libdynamic_SRCS
467
    dynamic/Bias.cpp
468
    dynamic/BiasedPlaylist.cpp
469
    dynamic/BiasSolver.cpp
470
    dynamic/CustomBias.cpp
471
    dynamic/CustomBiasEntry.cpp
472
    dynamic/CustomBiasEntryWidget.cpp
473
    dynamic/DynamicPlaylist.cpp
474
    dynamic/TrackSet.cpp
475
    dynamic/gsl/gauss.c
476
477
    # biases
478
    dynamic/biases/EchoNest.cpp
479
)
480
481
#####################################################################
482
# DBUS
483
#####################################################################
484
set(dbus_SRCS
485
    dbus/mpris1/RootHandler.cpp
486
    dbus/mpris1/PlayerHandler.cpp
487
    dbus/mpris1/TrackListHandler.cpp
488
    dbus/CollectionDBusHandler.cpp
489
    dbus/DBusQueryHelper.cpp
490
)
491
492
493
#####################################################################
494
# SCRIPTING INTERFACE
495
#####################################################################
496
set(scriptengine_SRCS
497
    scriptengine/AmarokScript.cpp
498
    scriptengine/AmarokCollectionScript.cpp
499
    scriptengine/AmarokScriptConfig.cpp
500
    scriptengine/AmarokInfoScript.cpp
501
    scriptengine/AmarokNetworkScript.cpp
502
    scriptengine/AmarokScriptableServiceScript.cpp
503
    scriptengine/AmarokServicePluginManagerScript.cpp
504
    scriptengine/AmarokEngineScript.cpp
505
    scriptengine/AmarokOSDScript.cpp
506
    scriptengine/AmarokPlaylistScript.cpp
507
    scriptengine/AmarokStatusbarScript.cpp
508
    scriptengine/AmarokWindowScript.cpp
509
    scriptengine/AmarokLyricsScript.cpp
510
    scriptengine/MetaTypeExporter.cpp
511
    scriptengine/ScriptImporter.cpp
512
)
513
514
#####################################################################
515
# PLAYLIST GENERATOR
516
#####################################################################
517
set(apg_SRCS
518
    playlistgenerator/Constraint.cpp
519
    playlistgenerator/ConstraintGroup.cpp
520
    playlistgenerator/ConstraintFactory.cpp
521
    playlistgenerator/ConstraintNode.cpp
522
    playlistgenerator/ConstraintSolver.cpp
523
    playlistgenerator/ConstraintTester.cpp
524
    playlistgenerator/ConstraintTestWrapper.cpp
525
    playlistgenerator/Preset.cpp
526
    playlistgenerator/PresetEditDialog.cpp
527
    playlistgenerator/PresetModel.cpp
528
    playlistgenerator/TreeController.cpp
529
    playlistgenerator/TreeModel.cpp
530
    playlistgenerator/constraints/Checkpoint.cpp
531
    playlistgenerator/constraints/CheckpointSupport.cpp
532
    playlistgenerator/constraints/Matching.cpp
533
    playlistgenerator/constraints/PlaylistDuration.cpp
534
    playlistgenerator/constraints/PlaylistLength.cpp
535
    playlistgenerator/constraints/PreventDuplicates.cpp
536
    playlistgenerator/constraints/TagMatch.cpp
537
    playlistgenerator/constraints/TagMatchSupport.cpp
538
    playlistgenerator/constraints/TrackSpreader.cpp
539
)
540
541
kde4_add_ui_files(apg_SRCS
542
    playlistgenerator/ConstraintGroupEditWidget.ui
543
    playlistgenerator/PresetEditDialog.ui
544
    playlistgenerator/constraints/CheckpointEditWidget.ui
545
    playlistgenerator/constraints/PlaylistDurationEditWidget.ui
546
    playlistgenerator/constraints/PlaylistLengthEditWidget.ui
547
    playlistgenerator/constraints/PreventDuplicatesEditWidget.ui
548
    playlistgenerator/constraints/TagMatchEditWidget.ui
549
)
550
551
#####################################################################
552
# NETWORK ACCESS
553
#####################################################################
554
set(network_access_SRCS
555
    network/NetworkAccessManagerProxy.cpp
556
)
557
558
if( CMAKE_BUILD_TYPE_TOLOWER MATCHES debug )
559
    set(network_access_SRCS
560
        ${network_access_SRCS}
561
        network/NetworkAccessViewer.cpp
562
        )
563
564
    kde4_add_ui_files(network_access_SRCS
565
        network/NetworkRequests.ui
566
        )
567
endif( CMAKE_BUILD_TYPE_TOLOWER MATCHES debug )
568
569
#####################################################################
570
# RESOLVERS
571
#####################################################################
572
set(taglib_filetype_resolver_SRCS
573
    ../shared/taglib_filetype_resolvers/asffiletyperesolver.cpp
574
    ../shared/taglib_filetype_resolvers/mp4filetyperesolver.cpp
575
    ../shared/taglib_filetype_resolvers/wavfiletyperesolver.cpp
576
    ../shared/taglib_filetype_resolvers/mimefiletyperesolver.cpp
577
)
578
579
580
#####################################################################
581
# LIBAMAROK
582
#####################################################################
583
set(amaroklib_LIB_SRCS
584
    ${libscriptableservice_SRCS}
585
    ${libanalyzers_SRCS}
586
    ${libbrowserframework_SRCS}
587
    ${libcontextview_SRCS}
588
    ${libcollectionbrowser_SRCS}
589
    ${libconfigdialog_SRCS}
590
    ${libplaylist_SRCS}
591
    ${libtooltip_SRCS}
592
    ${libproxycollection_SRCS}
593
    ${libpodcasts_SRCS}
594
    ${libmediadeviceframework_SRCS}
595
    ${libserviceframework_SRCS}
596
    ${libservicebrowser_SRCS}
597
    ${libdynamic_SRCS}
598
    ${likeback_SRCS}
599
    ${libmetaimpl_SRCS}
600
    ${core_interfaces_SRCS}
601
    ${apg_SRCS}
602
    ${collection_SRCS}
603
    ${mac_SRCS}
604
    ${network_access_SRCS}
605
    ${libplaylistbrowser_SRCS}
606
    ${libqueuemanager_SRCS}
607
    ${libplaylistmanager_SRCS}
608
    ${dbus_SRCS}
609
    ${scriptengine_SRCS}
610
    ${libstatusbar_SRCS}
611
    ${libamarokurl_SRCS}
612
    ${taglib_filetype_resolver_SRCS}
613
    ${libsynchronization_SRCS}
614
    core-impl/logger/ProxyLogger.cpp
615
    aboutdialog/AnimatedBarWidget.cpp
616
    aboutdialog/AnimatedWidget.cpp
617
    aboutdialog/ExtendedAboutDialog.cpp
618
    aboutdialog/FramedLabel.cpp
619
    aboutdialog/OcsData.cpp
620
    aboutdialog/OcsPersonItem.cpp
621
    aboutdialog/OcsPersonListWidget.cpp
622
    ActionClasses.cpp
623
    AmarokMimeData.cpp
624
    AmarokProcess.cpp
625
    App.cpp
626
    CaseConverter.cpp
627
    DirectoryLoader.cpp
628
    EngineController.cpp
629
    Expression.cpp
630
    KNotificationBackend.cpp
631
    MainWindow.cpp
632
    MediaDeviceCache.cpp
633
    MediaDeviceMonitor.cpp
634
    StarManager.cpp
635
    SvgHandler.cpp
636
    SvgTinter.cpp
637
    core-impl/meta/timecode/TimecodeObserver.cpp
638
    core-impl/meta/timecode/TimecodeMeta.cpp
639
    core-impl/meta/timecode/TimecodeTrackProvider.cpp
640
    covermanager/CoverFetcher.cpp
641
    covermanager/CoverFetchingActions.cpp
642
    covermanager/CoverFetchQueue.cpp
643
    covermanager/CoverFetchUnit.cpp
644
    covermanager/CoverFoundDialog.cpp
645
    covermanager/CoverManager.cpp
646
    databaseimporter/DatabaseImporter.cpp
647
    databaseimporter/amarok14/FastForwardImporter.cpp
648
    databaseimporter/amarok14/FastForwardImporterConfig.cpp
649
    databaseimporter/amarok14/FastForwardWorker.cpp
650
    databaseimporter/itunes/ITunesImporterConfig.cpp
651
    databaseimporter/itunes/ITunesImporter.cpp
652
    databaseimporter/itunes/ITunesImporterWorker.cpp
653
    dialogs/CollectionSetup.cpp
654
    dialogs/DatabaseImporterDialog.cpp
655
    dialogs/EditFilterDialog.cpp
656
    dialogs/EqualizerDialog.cpp
657
    dialogs/FilenameLayoutDialog.cpp
658
    dialogs/OrganizeCollectionDialog.cpp
659
    dialogs/TrackOrganizer.cpp
660
    dialogs/ScriptSelector.cpp
661
    dialogs/ScriptManager.cpp
662
    dialogs/ScriptUpdater.cpp
663
    dialogs/TagDialog.cpp
664
    dialogs/TagGuesser.cpp
665
    dialogs/LabelListModel.cpp
666
    browsers/filebrowser/MimeTypeFilterProxyModel.cpp
667
    browsers/filebrowser/FileBrowser.cpp
668
    browsers/filebrowser/FileView.cpp
669
    firstruntutorial/FirstRunTutorial.cpp
670
    firstruntutorial/FirstRunTutorialPage.cpp
671
    OpmlOutline.cpp
672
    OpmlParser.cpp
673
    OpmlWriter.cpp
674
    PaletteHandler.cpp
675
    PopupDropperFactory.cpp
676
    statemanagement/ApplicationController.cpp
677
    statemanagement/DefaultApplicationController.cpp
678
    toolbar/CurrentTrackToolbar.cpp
679
    toolbar/SlimToolbar.cpp
680
    toolbar/VolumePopupButton.cpp
681
    toolbar/MainToolbar.cpp
682
    widgets/AlbumBreadcrumbWidget.cpp
683
    widgets/AmarokDockWidget.cpp
684
    widgets/AnimatedLabelStack.cpp
685
    widgets/BreadcrumbItemButton.cpp
686
    widgets/CoverLabel.cpp
687
    widgets/hintlineedit.cpp
688
    widgets/kdatecombo.cpp
689
    widgets/kratingpainter.cpp
690
    widgets/kratingwidget.cpp
691
    widgets/TokenDropTarget.cpp
692
    widgets/EditDeleteComboBoxView.cpp
693
    widgets/EditDeleteDelegate.cpp
694
    widgets/ElidingButton.cpp
695
    widgets/ExpandingControlsWidget.cpp
696
    widgets/FlowLayout.cpp
697
    widgets/HorizontalDivider.cpp
698
    widgets/IconButton.cpp
699
    widgets/ComboBox.cpp
700
    widgets/LineEdit.cpp
701
    widgets/MainControlsButton.cpp
702
    widgets/MainControlsWidget.cpp
703
    widgets/Osd.cpp
704
    widgets/PixmapViewer.cpp
705
    widgets/PlayPauseButton.cpp
706
    widgets/PrettyTreeView.cpp
707
    widgets/ProgressWidget.cpp
708
    widgets/SearchWidget.cpp
709
    widgets/SliderWidget.cpp
710
    widgets/TokenPool.cpp
711
    widgets/Token.cpp
712
    widgets/TokenWithLayout.cpp
713
    widgets/VolumeWidget.cpp
714
    widgets/VolumeDial.cpp
715
    widgets/Splitter.cpp
716
    widgets/TrackActionButton.cpp
717
    widgets/BookmarkTriangle.cpp
718
    widgets/BookmarkPopup.cpp
719
    widgets/TrackSelectWidget.cpp
720
    widgets/MetaQueryWidget.cpp
721
    GlobalCollectionActions.cpp
722
    GlobalCurrentTrackActions.cpp
723
    moodbar/MoodbarManager.cpp
724
)
725
726
if(KSTATUSNOTIFIERITEM_FOUND)
727
    set(amaroklib_LIB_SRCS
728
        ${amaroklib_LIB_SRCS}
729
        TrayIcon.cpp
730
        )
731
else(KSTATUSNOTIFIERITEM_FOUND)
732
    set(amaroklib_LIB_SRCS
733
        ${amaroklib_LIB_SRCS}
734
        TrayIconLegacy.cpp
735
        )
736
endif(KSTATUSNOTIFIERITEM_FOUND)
737
738
if( BUILD_MYSQLE_COLLECTION )
739
else( BUILD_MYSQLE_COLLECTION )
740
        set(amaroklib_LIB_SRCS
741
            ${amaroklib_LIB_SRCS}
742
            MySqlServerTester.cpp
743
           )
744
        add_definitions(${MYSQL_CFLAGS})
745
        include_directories(${MYSQL_INCLUDE_DIR})
746
        target_link_libraries(amaroklib ${MYSQL_LIBS})
747
endif( BUILD_MYSQLE_COLLECTION )
748
749
if(KDE4_BUILD_TESTS)
750
    set(amaroklib_LIB_SRCS
751
        ${amaroklib_LIB_SRCS}
752
        ../tests/TestBase.cpp
753
        ../tests/TestDirectoryLoader.cpp
754
    )
755
    include_directories(
756
        ../tests/
757
        ../tests/context/
758
        ../tests/context/engines/
759
        ../tests/context/engines/upcomingevents/
760
        ../tests/context/engines/similarartists/
761
        ../tests/meta/
762
        ../tests/meta/cue/
763
        ../tests/meta/file/
764
        ../tests/meta/multi/
765
        ../tests/playlistmanager/
766
        ../tests/playlistmanager/file/
767
        ../tests/playlistmanager/sql/
768
        ../tests/timecode/
769
    )
770
endif()
771
772
if( LIBLASTFM_FOUND )
773
    set(amaroklib_LIB_SRCS
774
        ${amaroklib_LIB_SRCS}
775
        LastfmReadLabelCapability.cpp
776
    )
777
    include_directories( ${LIBLASTFM_INCLUDE_DIR}/..  ${LIBLASTFM_INCLUDE_DIR})
778
    set( EXTRA_LIBS ${LIBLASTFM_LIBRARY} )
779
endif( LIBLASTFM_FOUND )
780
781
qt4_add_dbus_adaptor(
782
   amaroklib_LIB_SRCS
783
   dbus/mpris1/org.freedesktop.MediaPlayer.root.xml
784
   dbus/mpris1/RootHandler.h
785
   Mpris1::RootHandler
786
   Mpris1RootAdaptor
787
   Mpris1RootAdaptor )
788
qt4_add_dbus_adaptor(
789
   amaroklib_LIB_SRCS
790
   dbus/mpris1/org.freedesktop.MediaPlayer.player.xml
791
   dbus/mpris1/PlayerHandler.h
792
   Mpris1::PlayerHandler
793
   Mpris1PlayerAdaptor
794
   Mpris1PlayerAdaptor )
795
qt4_add_dbus_adaptor(
796
   amaroklib_LIB_SRCS
797
   dbus/mpris1/org.freedesktop.MediaPlayer.tracklist.xml
798
   dbus/mpris1/TrackListHandler.h
799
   Mpris1::TrackListHandler
800
   Mpris1TrackListAdaptor
801
   Mpris1TrackListAdaptor )
802
qt4_add_dbus_adaptor(
803
   amaroklib_LIB_SRCS
804
   dbus/org.kde.amarok.App.xml
805
   dbus/mpris1/PlayerHandler.h
806
   Mpris1::PlayerHandler
807
   AppDBusAdaptor
808
   AppDBusAdaptor )
809
qt4_add_dbus_adaptor(
810
   amaroklib_LIB_SRCS
811
   dbus/org.kde.amarok.Player.xml
812
   dbus/mpris1/PlayerHandler.h
813
   Mpris1::PlayerHandler
814
   PlayerDBusAdaptor
815
   PlayerDBusAdaptor )
816
qt4_add_dbus_adaptor(
817
   amaroklib_LIB_SRCS
818
   dbus/org.kde.amarok.Collection.xml
819
   dbus/CollectionDBusHandler.h
820
   CollectionDBusHandler
821
   CollectionAdaptor
822
   CollectionAdaptor )
823
824
set( amaroklib_DEPENDS "amarokpud" )
825
set( amaroklib_DEPENDS "amarokcore" )
826
827
kde4_add_kcfg_files(amaroklib_LIB_SRCS amarokconfig.kcfgc)
828
add_custom_target(amarokconfig_h DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/amarokconfig.h)
829
830
831
kde4_add_ui_files(amaroklib_LIB_SRCS
832
    aboutdialog/OcsPersonItem.ui
833
    dialogs/EditFilterDialog.ui
834
    dialogs/EqualizerDialog.ui
835
    dialogs/ScriptManagerBase.ui
836
    dialogs/TagDialogBase.ui
837
    dialogs/FilenameLayoutDialog.ui
838
    dialogs/OrganizeCollectionDialogBase.ui
839
    likeback/LikeBackBar.ui
840
    likeback/LikeBackDialog.ui
841
    playlist/layouts/PlaylistLayoutEditDialog.ui
842
    core-impl/podcasts/sql/PodcastSettingsBase.ui
843
    core-impl/podcasts/sql/SqlPodcastProviderSettingsWidget.ui
844
    browsers/playlistbrowser/PodcastCategoryBase.ui
845
)
846
847
kde4_add_library(amaroklib SHARED ${amaroklib_LIB_SRCS})
848
849
target_link_libraries(amaroklib
850
    ${KDE4_KDEUI_LIBS}
851
    ${KDE4_KFILE_LIBS}
852
    ${KDE4_KHTML_LIBS}
853
    ${KDE4_KNEWSTUFF2_LIBS}
854
    ${KDE4_KNEWSTUFF_LIBS}
855
    ${KDE4_KNOTIFYCONFIG_LIBS}
856
    ${KDE4_KUTILS_LIBS}
857
    ${KDE4_PHONON_LIBRARY}
858
    ${KDE4_PLASMA_LIBS}
859
    ${KDE4_SOLID_LIBRARY}
860
    ${KDE4_THREADWEAVER_LIBRARIES}
861
    ${TAGLIB_LIBRARIES}
862
    ${TAGLIB-EXTRAS_LIBRARIES}
863
    ${QT_QTSCRIPT_LIBRARY}
864
    ${QT_QTSQL_LIBRARY}
865
    ${QT_QTWEBKIT_LIBRARY}
866
    ${QCA2_LIBRARIES}
867
    ${CMAKE_THREAD_LIBS_INIT}
868
    ${EXTRA_LIBS}
869
    amarokpud
870
    amarokcore
871
    amarokocsclient
872
)
873
874
if (KDE_VERSION VERSION_GREATER "4.3.80")
875
    target_link_libraries(amaroklib ${KDE4_KNEWSTUFF3_LIBS})
876
endif (KDE_VERSION VERSION_GREATER "4.3.80")
877
878
if(KDE4_BUILD_TESTS)
879
    target_link_libraries(amaroklib ${QT_QTTEST_LIBRARY})
880
endif()
881
882
if( BUILD_MYSQLE_COLLECTION )
883
else( BUILD_MYSQLE_COLLECTION )
884
    target_link_libraries(amaroklib ${MYSQL_LIBRARIES} ${ZLIB_LIBRARIES})
885
endif( BUILD_MYSQLE_COLLECTION )
886
887
if(WIN32)
888
    target_link_libraries(amaroklib ${QT_QTWEBKIT_LIBRARY})
889
endif(WIN32)
890
if(APPLE)
891
    SET_TARGET_PROPERTIES(amaroklib PROPERTIES LINK_FLAGS "-undefined dynamic_lookup")
892
endif(APPLE)
893
894
if(KDEMULTIMEDIA_FOUND)
895
    target_link_libraries(amaroklib
896
        ${KCDDB_LIBRARY}
897
        ${KCOMPACTDISC_LIBRARY}
898
    )
899
endif(KDEMULTIMEDIA_FOUND)
900
if(LIBDL_FOUND)
901
    target_link_libraries(amaroklib dl)
902
endif(LIBDL_FOUND)
903
904
if(CMAKE_COMPILER_IS_GNUCXX AND CMAKE_SYSTEM_NAME MATCHES Linux)
905
    set ( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=iso9899:1999" )
906
endif(CMAKE_COMPILER_IS_GNUCXX AND CMAKE_SYSTEM_NAME MATCHES Linux)
907
908
set_target_properties(amaroklib PROPERTIES VERSION 1.0.0 SOVERSION 1 )
909
install(TARGETS amaroklib ${INSTALL_TARGETS_DEFAULT_ARGS} )
910
911
912
#####################################################################
913
# AMAROK
914
#####################################################################
915
916
set(amarok_SRCS main.cpp )
917
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${KDE4_ENABLE_EXCEPTIONS}")
918
919
kde4_add_app_icon(amarok_SRCS ${CMAKE_CURRENT_SOURCE_DIR}/images/hi*-app-amarok.png)
920
921
if(Q_WS_MAC)
922
    kde4_add_executable(Amarok ${amarok_SRCS})
923
    target_link_libraries(Amarok ${KDE4_KDECORE_LIBS} amaroklib )
924
    SET_TARGET_PROPERTIES(Amarok PROPERTIES LINK_FLAGS "-undefined dynamic_lookup")
925
    set_target_properties(Amarok PROPERTIES MACOSX_BUNDLE_INFO_PLIST ${MAC_FILES_DIR}/Info.plist.template)
926
    set_target_properties(Amarok PROPERTIES MACOSX_BUNDLE_GUI_IDENTIFIER "org.kde.amarok")
927
    set_target_properties(Amarok PROPERTIES MACOSX_BUNDLE_BUNDLE_NAME "Amarok 2")
928
    #the following line was copied from KDE4Macros.cmake. kde4_add_app_icon fails to actually copy the .icns file
929
    SET_SOURCE_FILES_PROPERTIES(${CMAKE_CURRENT_BINARY_DIR}/amarok.icns PROPERTIES MACOSX_PACKAGE_LOCATION Resources)
930
    install(TARGETS Amarok ${INSTALL_TARGETS_DEFAULT_ARGS})
931
else(Q_WS_MAC)
932
    kde4_add_executable(amarok ${amarok_SRCS})
933
    target_link_libraries(amarok ${KDE4_KDEUI_LIBS} amaroklib ${TAGLIB_LIBRARIES} ${TAGLIB-EXTRAS_LIBRARIES} )
934
935
    install(TARGETS amarok ${INSTALL_TARGETS_DEFAULT_ARGS})
936
endif(Q_WS_MAC)
937
938
########### install files ###############
939
940
install(FILES amarok.desktop DESTINATION ${XDG_APPS_INSTALL_DIR} )
941
install(FILES amarok_containers.desktop DESTINATION ${XDG_APPS_INSTALL_DIR} )
942
943
install(FILES amarok_plugin.desktop DESTINATION ${SERVICETYPES_INSTALL_DIR})
944
install(FILES amarok_codecinstall.desktop DESTINATION ${SERVICETYPES_INSTALL_DIR})
945
install(FILES amarok_append.desktop DESTINATION ${SERVICES_INSTALL_DIR}/ServiceMenus)
946
install(FILES amarok-play-audiocd.desktop DESTINATION ${DATA_INSTALL_DIR}/solid/actions)
947
948
install(FILES amarok.knsrc DESTINATION ${CONFIG_INSTALL_DIR})
949
install(FILES context/amarokapplets.knsrc DESTINATION ${CONFIG_INSTALL_DIR})
950
951
# protocol handlers
952
install(FILES amarokurls/amarok.protocol  DESTINATION  ${SERVICES_INSTALL_DIR})
953
install(FILES amarokitpc.protocol DESTINATION ${SERVICES_INSTALL_DIR})
954
#install(FILES amarokpcast.protocol DESTINATION ${SERVICES_INSTALL_DIR})
955
956
install(FILES context/servicetypes/amarok_context_applet.desktop
957
              context/servicetypes/amarok_data_engine.desktop
958
              DESTINATION ${SERVICETYPES_INSTALL_DIR} )
959
960
install(FILES  amarokconfig.kcfg DESTINATION ${KCFG_INSTALL_DIR} )
961
install(FILES dbus/mpris1/org.freedesktop.MediaPlayer.root.xml
962
              dbus/mpris1/org.freedesktop.MediaPlayer.player.xml
963
              dbus/mpris1/org.freedesktop.MediaPlayer.tracklist.xml
964
              dbus/org.kde.amarok.App.xml
965
              dbus/org.kde.amarok.Collection.xml
966
              dbus/org.kde.amarok.Player.xml
967
              DESTINATION ${DBUS_INTERFACES_INSTALL_DIR})
968
969
970
install(FILES data/DefaultPlaylistLayouts.xml
971
              data/first_run_jingle.ogg
972
              services/InfoParserLoading.html
973
              browsers/hover_info_template.html
974
              DESTINATION ${DATA_INSTALL_DIR}/amarok/data)
975
976
install( FILES data/amarok_homerc DESTINATION ${CONFIG_INSTALL_DIR} )
977
install( FILES data/amarok.notifyrc DESTINATION ${DATA_INSTALL_DIR}/amarok )
978
979
kde4_install_icons( ${ICON_INSTALL_DIR} )