Warning, /multimedia/plasmatube/src/CMakeLists.txt is written in an unsupported language. File is not indexed.

0001 # SPDX-FileCopyrightText: 2019 Linus Jahn <lnj@kaidan.im>
0002 # SPDX-License-Identifier: CC0-1.0
0003 
0004 add_subdirectory(api)
0005 
0006 ecm_qt_declare_logging_category(plasmatube_srcs
0007     HEADER "mpris2logging.h"
0008     IDENTIFIER "Mpris2Log"
0009     CATEGORY_NAME "org.kde.plasmatube.mpris2"
0010     DEFAULT_SEVERITY Info
0011 )
0012 
0013 add_executable(plasmatube)
0014 
0015 qt_add_qml_module(plasmatube
0016         URI org.kde.plasmatube
0017         VERSION 1.0)
0018 
0019 target_sources(plasmatube PRIVATE
0020         ${plasmatube_srcs}
0021 
0022         controllers/channelcontroller.cpp
0023         controllers/channelcontroller.h
0024         controllers/plasmatube.cpp
0025         controllers/plasmatube.h
0026         controllers/logincontroller.cpp
0027         controllers/logincontroller.h
0028         controllers/videosource.cpp
0029         controllers/videosource.h
0030         controllers/windowcontroller.cpp
0031         controllers/windowcontroller.h
0032 
0033         models/abstractlistmodel.cpp
0034         models/abstractlistmodel.h
0035         models/commentsmodel.cpp
0036         models/commentsmodel.h
0037         models/invidiousinstancesmodel.cpp
0038         models/invidiousinstancesmodel.h
0039         models/peertubeinstancesmodel.cpp
0040         models/peertubeinstancesmodel.h
0041         models/pipedinstancesmodel.cpp
0042         models/pipedinstancesmodel.h
0043         models/playlistsmodel.cpp
0044         models/playlistsmodel.h
0045         models/searchmodel.cpp
0046         models/searchmodel.h
0047         models/videolistmodel.cpp
0048         models/videolistmodel.h
0049         models/videomodel.cpp
0050         models/videomodel.h
0051 
0052         mpris/mpris2.cpp
0053         mpris/mpris2.h
0054 
0055         controllers/sourcemanager.cpp
0056         controllers/sourcemanager.h
0057         controllers/subscriptioncontroller.cpp
0058         controllers/subscriptioncontroller.h
0059         controllers/subscriptionwatcher.cpp
0060         controllers/subscriptionwatcher.h
0061         controllers/videoqueue.cpp
0062         controllers/videoqueue.h
0063         controllers/videocontroller.cpp
0064         controllers/videocontroller.h
0065 
0066         utils/mpvobject.cpp
0067         utils/mpvobject.h
0068 
0069         main.cpp
0070 )
0071 
0072 if (NOT ANDROID)
0073     target_sources(plasmatube PRIVATE
0074             mpris/mediaplayer2.h
0075             mpris/mediaplayer2.cpp
0076             mpris/mediaplayer2player.cpp
0077             mpris/mediaplayer2player.h
0078             mpris/metadata.cpp
0079             mpris/metadata.h
0080     )
0081 endif()
0082 
0083 qt_target_qml_sources(plasmatube
0084     QML_FILES
0085         ui/components/BaseGridItem.qml
0086         ui/components/BaseGridView.qml
0087         ui/components/BottomNavBar.qml
0088         ui/components/ChannelGridItem.qml
0089         ui/components/Comments.qml
0090         ui/components/PlaceholderItem.qml
0091         ui/components/PlaylistGridItem.qml
0092         ui/components/ShareDialog.qml
0093         ui/components/ShareMenu.qml
0094         ui/components/Sidebar.qml
0095         ui/components/SourceSwitcher.qml
0096         ui/components/SubscriptionButton.qml
0097         ui/components/VideoGridItem.qml
0098         ui/components/VideoListAction.qml
0099         ui/components/VideoListItem.qml
0100         ui/components/VideoMenu.qml
0101 
0102         ui/loginflow/AddInvidiousPage.qml
0103         ui/loginflow/AddPeerTubePage.qml
0104         ui/loginflow/AddPipedPage.qml
0105         ui/loginflow/WelcomePage.qml
0106 
0107         ui/settings/AboutKDEPage.qml
0108         ui/settings/AboutPage.qml
0109         ui/settings/InvidiousSourcePage.qml
0110         ui/settings/NetworkProxyPage.qml
0111         ui/settings/PeerTubeSourcePage.qml
0112         ui/settings/PipedSourcePage.qml
0113         ui/settings/SettingsPage.qml
0114         ui/settings/SourcesPage.qml
0115 
0116         ui/videoplayer/MinimizedVideoPlayer.qml
0117         ui/videoplayer/PictureInPictureVideo.qml
0118         ui/videoplayer/TabIndicator.qml
0119         ui/videoplayer/VideoControls.qml
0120         ui/videoplayer/VideoData.qml
0121         ui/videoplayer/VideoPlayer.qml
0122         ui/videoplayer/VideoPlayerParent.qml
0123         ui/videoplayer/VideoQueueView.qml
0124 
0125         ui/ChannelPage.qml
0126         ui/FeedPage.qml
0127         ui/HistoryPage.qml
0128         ui/LoginPage.qml
0129         ui/Main.qml
0130         ui/PlaylistPage.qml
0131         ui/PlaylistsPage.qml
0132         ui/SearchPage.qml
0133         ui/SubscriptionsPage.qml
0134         ui/TrendingPage.qml
0135     RESOURCES
0136         ui/components/utils.js
0137 )
0138 
0139 set_source_files_properties(../org.kde.plasmatube.svg PROPERTIES
0140         QT_RESOURCE_ALIAS /org.kde.plasmatube.svg
0141 )
0142 
0143 qt_target_qml_sources(plasmatube
0144         PREFIX /
0145         RESOURCES
0146         ../org.kde.plasmatube.svg
0147 )
0148 
0149 kconfig_add_kcfg_files(plasmatube config.kcfgc sourceconfig.kcfgc GENERATE_MOC)
0150 
0151 target_include_directories(plasmatube PRIVATE
0152         ${CMAKE_BINARY_DIR}
0153         ${CMAKE_CURRENT_SOURCE_DIR}/controllers
0154         ${CMAKE_CURRENT_SOURCE_DIR}/models
0155         ${CMAKE_CURRENT_SOURCE_DIR}/mpris
0156         ${CMAKE_CURRENT_SOURCE_DIR}/utils
0157 )
0158 target_link_libraries(plasmatube PRIVATE
0159         qinvidious
0160         qinvidiousplugin
0161         Qt::Core
0162         Qt::Qml
0163         Qt::Quick
0164         Qt::QuickControls2
0165         Qt::Concurrent
0166         KF6::CoreAddons
0167         KF6::ConfigCore
0168         KF6::ConfigGui
0169         KF6::I18n
0170         Qt6Keychain::Qt6Keychain
0171         MpvQt::MpvQt)
0172 
0173 if (NOT ANDROID)
0174     target_link_libraries(plasmatube PRIVATE Qt::DBus Qt::Widgets)
0175     target_compile_options(plasmatube PUBLIC -DHAS_DBUS)
0176 else()
0177     target_link_libraries(plasmatube PRIVATE Qt::Svg)
0178 endif()
0179 
0180 if (TARGET KF6::DBusAddons)
0181     target_link_libraries(plasmatube PRIVATE KF6::DBusAddons KF6::WindowSystem)
0182     target_compile_definitions(plasmatube PRIVATE -DHAVE_KDBUSADDONS)
0183 endif ()
0184 
0185 if(PLASMATUBE_FLATPAK)
0186     target_compile_definitions(plasmatube PUBLIC PLASMATUBE_FLATPAK)
0187 endif()
0188 
0189 if (NOT ANDROID)
0190     install(DIRECTORY icons/ DESTINATION ${KDE_INSTALL_FULL_ICONDIR}/hicolor/scalable/actions)
0191 else()
0192     install(DIRECTORY icons/ DESTINATION ${KDE_INSTALL_QMLDIR}/org/kde/kirigami.2/icons/)
0193 endif()
0194 
0195 install(TARGETS plasmatube ${KDE_INSTALL_TARGETS_DEFAULT_ARGS})