Warning, /multimedia/elisa/src/CMakeLists.txt is written in an unsupported language. File is not indexed.
0001 # SPDX-FileCopyrightText: 2016 (c) Matthieu Gallien <matthieu_gallien@yahoo.fr> 0002 # 0003 # SPDX-License-Identifier: LGPL-3.0-or-later 0004 0005 include_directories(${elisa_BINARY_DIR}) 0006 0007 set(elisaLib_SOURCES 0008 mediaplaylist.cpp 0009 mediaplaylistproxymodel.cpp 0010 progressindicator.cpp 0011 databaseinterface.cpp 0012 datatypes.cpp 0013 musiclistenersmanager.cpp 0014 managemediaplayercontrol.cpp 0015 manageheaderbar.cpp 0016 manageaudioplayer.cpp 0017 trackslistener.cpp 0018 elisaapplication.cpp 0019 modeldataloader.cpp 0020 elisautils.cpp 0021 abstractfile/abstractfilelistener.cpp 0022 abstractfile/abstractfilelisting.cpp 0023 filescanner.cpp 0024 filewriter.cpp 0025 viewmanager.cpp 0026 powermanagementinterface.cpp 0027 file/filelistener.cpp 0028 file/localfilelisting.cpp 0029 models/datamodel.cpp 0030 models/abstractmediaproxymodel.cpp 0031 models/gridviewproxymodel.cpp 0032 models/trackmetadatamodel.cpp 0033 models/editabletrackmetadatamodel.cpp 0034 models/trackcontextmetadatamodel.cpp 0035 models/viewsmodel.cpp 0036 models/viewsproxymodel.cpp 0037 models/lyricsmodel.cpp 0038 viewslistdata.cpp 0039 viewconfigurationdata.cpp 0040 localFileConfiguration/elisaconfigurationdialog.cpp 0041 ) 0042 0043 ecm_qt_declare_logging_category(elisaLib_SOURCES 0044 HEADER "indexersManager.h" 0045 IDENTIFIER "orgKdeElisaIndexersManager" 0046 CATEGORY_NAME "org.kde.elisa.indexers.manager" 0047 DEFAULT_SEVERITY Info 0048 ) 0049 0050 ecm_qt_declare_logging_category(elisaLib_SOURCES 0051 HEADER "databaseLogging.h" 0052 IDENTIFIER "orgKdeElisaDatabase" 0053 CATEGORY_NAME "org.kde.elisa.database" 0054 DEFAULT_SEVERITY Info 0055 ) 0056 0057 ecm_qt_declare_logging_category(elisaLib_SOURCES 0058 HEADER "abstractfile/indexercommon.h" 0059 IDENTIFIER "orgKdeElisaIndexer" 0060 CATEGORY_NAME "org.kde.elisa.indexer" 0061 DEFAULT_SEVERITY Info 0062 ) 0063 0064 ecm_qt_declare_logging_category(elisaLib_SOURCES 0065 HEADER "models/modelLogging.h" 0066 IDENTIFIER "orgKdeElisaModel" 0067 CATEGORY_NAME "org.kde.elisa.model" 0068 DEFAULT_SEVERITY Info 0069 ) 0070 0071 ecm_qt_declare_logging_category(elisaLib_SOURCES 0072 HEADER "playListLogging.h" 0073 IDENTIFIER "orgKdeElisaPlayList" 0074 CATEGORY_NAME "org.kde.elisa.playlist" 0075 DEFAULT_SEVERITY Info 0076 ) 0077 0078 ecm_qt_declare_logging_category(elisaLib_SOURCES 0079 HEADER "viewsLogging.h" 0080 IDENTIFIER "orgKdeElisaViews" 0081 CATEGORY_NAME "org.kde.elisa.views" 0082 DEFAULT_SEVERITY Info 0083 ) 0084 0085 ecm_qt_declare_logging_category(elisaLib_SOURCES 0086 HEADER "playerLogging.h" 0087 IDENTIFIER "orgKdeElisaPlayer" 0088 CATEGORY_NAME "org.kde.elisa.player" 0089 DEFAULT_SEVERITY Info 0090 ) 0091 0092 ecm_qt_declare_logging_category(elisaLib_SOURCES 0093 HEADER "powerManagementLogging.h" 0094 IDENTIFIER "orgKdeElisaPowerManagement" 0095 CATEGORY_NAME "org.kde.elisa.powermanagement" 0096 DEFAULT_SEVERITY Info 0097 ) 0098 0099 if (LIBVLC_FOUND) 0100 ecm_qt_declare_logging_category(elisaLib_SOURCES 0101 HEADER "vlcLogging.h" 0102 IDENTIFIER "orgKdeElisaPlayerVlc" 0103 CATEGORY_NAME "org.kde.elisa.player.vlc" 0104 DEFAULT_SEVERITY Info 0105 ) 0106 0107 set(elisaLib_SOURCES 0108 ${elisaLib_SOURCES} 0109 audiowrapper_libvlc.cpp 0110 ) 0111 else() 0112 ecm_qt_declare_logging_category(elisaLib_SOURCES 0113 HEADER "qtMultimediaLogging.h" 0114 IDENTIFIER "orgKdeElisaPlayerQtMultimedia" 0115 CATEGORY_NAME "org.kde.elisa.player.qtMultimedia" 0116 DEFAULT_SEVERITY Info 0117 ) 0118 0119 set(elisaLib_SOURCES 0120 ${elisaLib_SOURCES} 0121 audiowrapper_qtmultimedia.cpp 0122 ) 0123 endif() 0124 0125 if (ANDROID) 0126 ecm_qt_declare_logging_category(elisaLib_SOURCES 0127 HEADER "android/androidcommon.h" 0128 IDENTIFIER "orgKdeElisaAndroid" 0129 CATEGORY_NAME "org.kde.elisa.android" 0130 DEFAULT_SEVERITY Info 0131 ) 0132 0133 set(elisaLib_SOURCES 0134 ${elisaLib_SOURCES} 0135 android/androidmusiclistener.cpp 0136 android/androidfilelisting.cpp 0137 ) 0138 endif() 0139 0140 if (KF6KIO_FOUND) 0141 set(elisaLib_SOURCES 0142 ${elisaLib_SOURCES} 0143 models/filebrowsermodel.cpp 0144 models/filebrowserproxymodel.cpp 0145 ) 0146 endif() 0147 0148 if (Qt6DBus_FOUND) 0149 set(elisaLib_SOURCES 0150 ${elisaLib_SOURCES} 0151 mpris2/mpris2.cpp 0152 mpris2/mediaplayer2.cpp 0153 mpris2/mediaplayer2player.cpp 0154 ) 0155 endif() 0156 0157 if (UPNPQT_FOUND) 0158 set(elisaLib_SOURCES 0159 ${elisaLib_SOURCES} 0160 upnp/upnpcontrolcontentdirectory.cpp 0161 upnp/upnpcontentdirectorymodel.cpp 0162 upnp/upnpcontrolconnectionmanager.cpp 0163 upnp/upnpcontrolmediaserver.cpp 0164 upnp/didlparser.cpp 0165 upnp/upnplistener.cpp 0166 upnp/upnpdiscoverallmusic.cpp 0167 ) 0168 endif() 0169 0170 kconfig_add_kcfg_files(elisaLib_SOURCES ../src/elisa_settings.kcfgc GENERATE_MOC ) 0171 set(elisaLib_SOURCES 0172 ${elisaLib_SOURCES} 0173 ../src/elisa_core.kcfg 0174 ) 0175 0176 add_library(elisaLib ${elisaLib_SOURCES}) 0177 target_link_libraries(elisaLib 0178 LINK_PUBLIC 0179 Qt::Multimedia 0180 LINK_PRIVATE 0181 Qt::Core Qt::Sql Qt::Widgets Qt::Concurrent Qt::Qml 0182 KF6::I18n KF6::CoreAddons 0183 KF6::ConfigCore KF6::ConfigGui 0184 KF6::ColorScheme) 0185 0186 if (KF6FileMetaData_FOUND) 0187 target_link_libraries(elisaLib 0188 LINK_PRIVATE 0189 KF6::FileMetaData 0190 ) 0191 endif() 0192 0193 if (KF6KIO_FOUND) 0194 target_link_libraries(elisaLib 0195 LINK_PUBLIC 0196 KF6::KIOCore KF6::KIOFileWidgets KF6::KIOWidgets 0197 ) 0198 endif() 0199 0200 if (KF6XmlGui_FOUND) 0201 target_link_libraries(elisaLib 0202 LINK_PUBLIC 0203 KF6::XmlGui 0204 ) 0205 endif() 0206 0207 if (KF6ConfigWidgets_FOUND) 0208 target_link_libraries(elisaLib 0209 LINK_PUBLIC 0210 KF6::ConfigWidgets 0211 ) 0212 endif() 0213 0214 if (Qt6DBus_FOUND) 0215 target_link_libraries(elisaLib 0216 LINK_PUBLIC 0217 Qt::DBus 0218 ) 0219 0220 if (KF6DBusAddons_FOUND) 0221 target_link_libraries(elisaLib 0222 LINK_PUBLIC 0223 KF6::DBusAddons 0224 ) 0225 endif() 0226 endif() 0227 0228 if (LIBVLC_FOUND) 0229 target_include_directories(elisaLib 0230 PRIVATE 0231 ${LIBVLC_INCLUDE_DIR} 0232 ) 0233 0234 target_link_libraries(elisaLib 0235 LINK_PRIVATE 0236 ${LIBVLC_LIBRARY} 0237 ) 0238 endif() 0239 0240 if (ANDROID) 0241 target_link_libraries(elisaLib 0242 LINK_PUBLIC 0243 Qt::AndroidExtras 0244 ) 0245 endif() 0246 0247 generate_export_header(elisaLib BASE_NAME ElisaLib EXPORT_FILE_NAME elisaLib_export.h) 0248 0249 set_target_properties(elisaLib PROPERTIES 0250 VERSION 0.1 0251 SOVERSION 0 0252 EXPORT_NAME ElisaLib 0253 ) 0254 0255 if (NOT APPLE AND NOT WIN32) 0256 install(TARGETS elisaLib 0257 LIBRARY DESTINATION ${KDE_INSTALL_FULL_LIBDIR}/elisa NAMELINK_SKIP 0258 RUNTIME DESTINATION ${KDE_INSTALL_FULL_LIBDIR}/elisa 0259 BUNDLE DESTINATION ${KDE_INSTALL_FULL_LIBDIR}/elisa 0260 ) 0261 else() 0262 install(TARGETS elisaLib ${KDE_INSTALL_TARGETS_DEFAULT_ARGS}) 0263 endif() 0264 0265 set(elisaqmlplugin_SOURCES 0266 elisaqmlplugin.cpp 0267 elisautils.cpp 0268 colorschemepreviewimageprovider.cpp 0269 ) 0270 0271 if (KF6FileMetaData_FOUND) 0272 set(elisaqmlplugin_SOURCES 0273 ${elisaqmlplugin_SOURCES} 0274 embeddedcoverageimageprovider.cpp 0275 ) 0276 endif() 0277 0278 add_library(elisaqmlplugin SHARED ${elisaqmlplugin_SOURCES}) 0279 target_link_libraries(elisaqmlplugin 0280 LINK_PRIVATE 0281 Qt::Quick Qt::Widgets 0282 KF6::ConfigCore KF6::ConfigGui 0283 elisaLib 0284 ) 0285 0286 if (KF6FileMetaData_FOUND) 0287 target_link_libraries(elisaqmlplugin 0288 LINK_PRIVATE 0289 KF6::FileMetaData 0290 ) 0291 endif() 0292 0293 set_target_properties(elisaqmlplugin PROPERTIES 0294 LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin/org/kde/elisa 0295 ) 0296 0297 if (NOT APPLE AND NOT WIN32) 0298 set_target_properties(elisaqmlplugin PROPERTIES 0299 INSTALL_RPATH "${KDE_INSTALL_FULL_LIBDIR}/elisa;${CMAKE_INSTALL_RPATH}" 0300 ) 0301 endif() 0302 0303 install(TARGETS elisaqmlplugin DESTINATION ${KDE_INSTALL_QMLDIR}/org/kde/elisa/) 0304 0305 install(FILES qmldir DESTINATION ${KDE_INSTALL_QMLDIR}/org/kde/elisa) 0306 0307 add_custom_target(copy) 0308 add_custom_target(copy2) 0309 0310 file(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/bin/org/kde/elisa) 0311 0312 add_custom_command(TARGET copy PRE_BUILD 0313 COMMAND ${CMAKE_COMMAND} -E 0314 copy ${CMAKE_CURRENT_SOURCE_DIR}/qmldir ${CMAKE_BINARY_DIR}/bin/org/kde/elisa 0315 ) 0316 0317 add_custom_command(TARGET copy2 PRE_BUILD 0318 COMMAND ${CMAKE_COMMAND} -E 0319 copy ${CMAKE_CURRENT_SOURCE_DIR}/plugins.qmltypes ${CMAKE_BINARY_DIR}/bin/org/kde/elisa/ 0320 ) 0321 0322 add_dependencies(elisaqmlplugin copy copy2) 0323 0324 ecm_generate_qmltypes(org.kde.elisa 1.0 0325 DESTINATION ${KDE_INSTALL_QMLDIR}/org/kde/elisa) 0326 0327 if (Qt6Quick_FOUND AND Qt6Widgets_FOUND) 0328 0329 set(elisa_SOURCES 0330 main.cpp 0331 0332 windows/WindowsTheme.qml 0333 windows/PlatformIntegration.qml 0334 0335 android/PlatformIntegration.qml 0336 0337 qml/ElisaMainWindow.qml 0338 qml/ApplicationMenu.qml 0339 qml/NativeGlobalMenu.qml 0340 qml/NativeTrayMenu.qml 0341 qml/NativeMenuItemFromAction.qml 0342 qml/BaseTheme.qml 0343 qml/Theme.qml 0344 qml/PlatformIntegration.qml 0345 qml/LabelWithToolTip.qml 0346 0347 qml/RatingStar.qml 0348 qml/TrackImportNotification.qml 0349 qml/ImageWithFallback.qml 0350 0351 qml/HeaderBar.qml 0352 qml/NavigationActionBar.qml 0353 qml/SortMenu.qml 0354 qml/MediaPlayerControl.qml 0355 qml/ContextView.qml 0356 qml/ContentView.qml 0357 qml/ViewSelector.qml 0358 qml/AbstractDataView.qml 0359 qml/DataGridView.qml 0360 qml/DataListView.qml 0361 qml/DurationSlider.qml 0362 qml/VolumeSlider.qml 0363 0364 qml/MediaPlayListView.qml 0365 qml/PlayListEntry.qml 0366 qml/SimplePlayListView.qml 0367 qml/BasicPlayListAlbumHeader.qml 0368 0369 qml/MediaTrackMetadataDelegate.qml 0370 qml/MediaTrackMetadataForm.qml 0371 qml/TracksDiscHeader.qml 0372 qml/MediaTrackMetadataView.qml 0373 qml/GridBrowserDelegate.qml 0374 qml/ListBrowserDelegate.qml 0375 qml/FlatButtonWithToolTip.qml 0376 qml/HeaderFooterToolbar.qml 0377 0378 qml/SettingsForm.qml 0379 qml/ElisaConfigurationDialog.qml 0380 0381 qml/mobile/MobileFooterBar.qml 0382 qml/mobile/MobileMediaTrackMetadataView.qml 0383 qml/mobile/MobileMinimizedPlayerControl.qml 0384 qml/mobile/MobilePlayListDelegate.qml 0385 qml/mobile/MobileSettingsPage.qml 0386 qml/mobile/MobileSidebar.qml 0387 qml/mobile/MobileTrackPlayer.qml 0388 qml/mobile/MobileVolumeButton.qml 0389 ) 0390 0391 qt_add_resources(elisa_SOURCES resources.qrc) 0392 set_property(SOURCE qrc_resources.cpp PROPERTY SKIP_AUTOMOC ON) 0393 0394 set(elisa_ICONS_PNG 0395 ../icons/128-apps-elisa.png 0396 ../icons/64-apps-elisa.png 0397 ../icons/48-apps-elisa.png 0398 ../icons/32-apps-elisa.png 0399 ../icons/22-apps-elisa.png 0400 ../icons/16-apps-elisa.png 0401 ) 0402 0403 # add icons to application sources, to have them bundled 0404 ecm_add_app_icon(elisa_SOURCES ICONS ${elisa_ICONS_PNG}) 0405 0406 add_executable(elisa ${elisa_SOURCES}) 0407 0408 target_include_directories(elisa PRIVATE ${KDSoap_INCLUDE_DIRS}) 0409 0410 target_link_libraries(elisa 0411 LINK_PRIVATE 0412 elisaLib 0413 Qt::Widgets Qt::QuickControls2 0414 KF6::I18n KF6::CoreAddons KF6::ConfigCore KF6::ConfigGui 0415 KF6::IconThemes 0416 ) 0417 0418 if (ANDROID) 0419 target_link_libraries(elisa 0420 PRIVATE 0421 Qt::AndroidExtras Qt::Svg Qt::Sql Qt::Concurrent KF6::Kirigami 0422 ) 0423 endif() 0424 0425 if (KF6Crash_FOUND) 0426 target_link_libraries(elisa 0427 LINK_PRIVATE 0428 KF6::Crash 0429 ) 0430 endif() 0431 0432 if (NOT APPLE AND NOT WIN32) 0433 set_target_properties(elisa PROPERTIES 0434 INSTALL_RPATH "${KDE_INSTALL_FULL_LIBDIR}/elisa;${CMAKE_INSTALL_RPATH}" 0435 ) 0436 endif() 0437 0438 install(TARGETS elisa ${KDE_INSTALL_TARGETS_DEFAULT_ARGS}) 0439 endif() 0440 0441 set(elisaImport_SOURCES 0442 elisaimport.cpp 0443 elisaimportapplication.cpp 0444 ) 0445 0446 add_executable(elisaImport ${elisaImport_SOURCES}) 0447 0448 target_link_libraries(elisaImport 0449 LINK_PRIVATE 0450 KF6::ConfigCore KF6::ConfigGui 0451 elisaLib 0452 ) 0453 0454 if (KF6FileMetaData_FOUND) 0455 target_link_libraries(elisaImport 0456 LINK_PRIVATE 0457 KF6::FileMetaData 0458 ) 0459 endif() 0460 0461 set(QML_IMPORT_PATH ${CMAKE_BINARY_DIR}/bin CACHE INTERNAL "qml import path" FORCE) 0462 0463 if (ANDROID) 0464 kirigami_package_breeze_icons(ICONS 0465 elisa 0466 open-menu-symbolic 0467 system-search 0468 overflow-menu 0469 draw-arrow-down 0470 draw-arrow-up 0471 media-playback-pause 0472 media-playback-start 0473 dialog-close 0474 arrow-down 0475 view-media-playlist 0476 view-media-artist 0477 view-right-close 0478 view-refresh 0479 view-media-track 0480 view-media-album-cover 0481 view-media-lyrics 0482 view-media-playcount 0483 view-media-genre 0484 dialog-ok-apply 0485 dialog-cancel 0486 help-about 0487 list-add 0488 view-more-symbolic 0489 edit-redo 0490 media-track-show-active 0491 document-save 0492 document-open 0493 document-edit 0494 document-open-folder 0495 edit-clear-all 0496 edit-clear 0497 media-skip-forward 0498 media-skip-backward 0499 media-playlist-shuffle 0500 media-playlist-normal 0501 media-playlist-play 0502 media-repeat-none 0503 media-repeat-single 0504 media-repeat-all 0505 media-default-album 0506 player-volume-muted 0507 player-volume 0508 delete 0509 go-next 0510 go-previous 0511 search 0512 error 0513 documentinfo 0514 folder 0515 radio 0516 rating-unrated 0517 rating 0518 media-playback-playing 0519 media-playback-paused 0520 settings-configure 0521 ) 0522 endif()