Warning, /multimedia/elisa/CMakeLists.txt is written in an unsupported language. File is not indexed.
0001 # SPDX-FileCopyrightText: 2015 (c) Matthieu Gallien <matthieu_gallien@yahoo.fr> 0002 # 0003 # SPDX-License-Identifier: LGPL-3.0-or-later 0004 0005 cmake_minimum_required(VERSION 3.8) 0006 0007 # KDE Applications version, managed by release script. 0008 set(RELEASE_SERVICE_VERSION_MAJOR "24") 0009 set(RELEASE_SERVICE_VERSION_MINOR "01") 0010 set(RELEASE_SERVICE_VERSION_MICRO "95") 0011 set(RELEASE_SERVICE_VERSION "${RELEASE_SERVICE_VERSION_MAJOR}.${RELEASE_SERVICE_VERSION_MINOR}.${RELEASE_SERVICE_VERSION_MICRO}") 0012 0013 project(elisa 0014 VERSION ${RELEASE_SERVICE_VERSION} 0015 LANGUAGES CXX) 0016 0017 set(REQUIRED_KF_VERSION "5.240.0") 0018 find_package(ECM ${REQUIRED_KF_VERSION} REQUIRED NO_MODULE) 0019 set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake" ${ECM_MODULE_PATH}) 0020 0021 include(KDEInstallDirs) 0022 include(KDECMakeSettings) 0023 include(KDECompilerSettings NO_POLICY_SCOPE) 0024 include(ECMInstallIcons) 0025 include(FeatureSummary) 0026 include(ECMAddAppIcon) 0027 include(ECMAddTests) 0028 include(ECMQtDeclareLoggingCategory) 0029 include(ECMGenerateQmlTypes) 0030 0031 set(REQUIRED_QT_VERSION "6.5.0") 0032 find_package(Qt6 ${REQUIRED_QT_VERSION} CONFIG REQUIRED Core Network Qml Quick Test Sql Multimedia Svg Gui Widgets QuickTest Concurrent QuickControls2) 0033 0034 find_package(Qt6Core ${REQUIRED_QT_VERSION} CONFIG REQUIRED Private) 0035 0036 0037 0038 if (NOT WIN32 AND NOT ANDROID) 0039 find_package(Qt6DBus ${REQUIRED_QT_VERSION} CONFIG QUIET) 0040 set_package_properties(Qt6DBus PROPERTIES 0041 DESCRIPTION "Qt6 DBus is needed to provide MPris2 interface to allow remote control by the desktop workspace." 0042 TYPE OPTIONAL) 0043 endif() 0044 0045 if (Qt6DBus_FOUND) 0046 set(QtDBus_FOUND 1) 0047 endif() 0048 0049 find_package(Qt6QuickWidgets ${REQUIRED_QT_VERSION} CONFIG QUIET) 0050 set_package_properties(Qt6QuickWidgets PROPERTIES 0051 DESCRIPTION "Qt6 Quick Widgets is needed at runtime to provide the interface." 0052 TYPE RUNTIME) 0053 0054 find_package(Qt6QuickControls2 ${REQUIRED_QT_VERSION} CONFIG QUIET) 0055 set_package_properties(Qt6QuickControls2 PROPERTIES 0056 DESCRIPTION "Qt6 Quick Controls version 2 is needed at runtime to provide the interface." 0057 TYPE RUNTIME) 0058 0059 if (ANDROID) 0060 find_package(Qt6 ${REQUIRED_QT_VERSION} CONFIG QUIET OPTIONAL_COMPONENTS AndroidExtras) 0061 set_package_properties(Qt5AndroidExtras PROPERTIES 0062 DESCRIPTION "Qt5 AndroidExtras is needed to provide the Android integration." 0063 TYPE REQUIRED) 0064 set(QtAndroidExtras_FOUND 1) 0065 endif() 0066 0067 find_package(KF6Kirigami ${REQUIRED_KF_VERSION} CONFIG QUIET) 0068 0069 set_package_properties(KF6Kirigami PROPERTIES 0070 DESCRIPTION "KF Kirigami is needed to provide the mobile UI components." 0071 TYPE REQUIRED) 0072 0073 find_package(KF6I18n ${REQUIRED_KF_VERSION} CONFIG QUIET) 0074 set_package_properties(KF6I18n PROPERTIES 0075 DESCRIPTION "KF text internationalization library." 0076 TYPE REQUIRED) 0077 0078 find_package(KF6CoreAddons ${REQUIRED_KF_VERSION} CONFIG QUIET) 0079 set_package_properties(KF6CoreAddons PROPERTIES 0080 DESCRIPTION "Qt addon library with a collection of non-GUI utilities." 0081 TYPE REQUIRED) 0082 0083 find_package(KF6IconThemes ${REQUIRED_KF_VERSION} CONFIG QUIET) 0084 set_package_properties(KF6IconThemes PROPERTIES 0085 DESCRIPTION "Support for icon themes." 0086 TYPE REQUIRED) 0087 0088 find_package(KF6FileMetaData ${REQUIRED_KF_VERSION} CONFIG QUIET) 0089 set_package_properties(KF6FileMetaData PROPERTIES 0090 DESCRIPTION "Provides a simple library for extracting metadata." 0091 TYPE RECOMMENDED) 0092 0093 find_package(KF6DocTools ${REQUIRED_KF_VERSION} CONFIG QUIET) 0094 set_package_properties(KF6DocTools PROPERTIES 0095 DESCRIPTION "Create documentation from DocBook library." 0096 TYPE OPTIONAL) 0097 0098 find_package(KF6XmlGui ${REQUIRED_KF_VERSION} CONFIG QUIET) 0099 set_package_properties(KF6XmlGui PROPERTIES 0100 DESCRIPTION "Framework for managing menu and toolbar actions." 0101 TYPE RECOMMENDED) 0102 0103 find_package(KF6Config ${REQUIRED_KF_VERSION} CONFIG QUIET) 0104 set_package_properties(KF6Config PROPERTIES 0105 DESCRIPTION "Persistent platform-independent application settings." 0106 TYPE REQUIRED) 0107 0108 find_package(KF6ColorScheme ${REQUIRED_KF_VERSION} CONFIG QUIET) 0109 set_package_properties(KF6ColorScheme PROPERTIES 0110 DESCRIPTION "Allows changing the app's color scheme." 0111 TYPE REQUIRED) 0112 0113 find_package(KF6ConfigWidgets ${REQUIRED_KF_VERSION} CONFIG QUIET) 0114 set_package_properties(KF6ConfigWidgets PROPERTIES 0115 DESCRIPTION "Widgets for configuration dialogs." 0116 TYPE RECOMMENDED) 0117 0118 find_package(KF6Crash ${REQUIRED_KF_VERSION} CONFIG QUIET) 0119 set_package_properties(KF6Crash PROPERTIES 0120 DESCRIPTION "Graceful handling of application crashes." 0121 TYPE OPTIONAL) 0122 0123 if (NOT WIN32 AND NOT ANDROID) 0124 find_package(KF6DBusAddons ${REQUIRED_KF_VERSION} CONFIG QUIET) 0125 set_package_properties(KF6DBusAddons PROPERTIES 0126 DESCRIPTION "Convenience classes for D-Bus." 0127 TYPE OPTIONAL) 0128 endif() 0129 0130 if (NOT ANDROID) 0131 find_package(KF6KIO ${REQUIRED_KF_VERSION} CONFIG QUIET) 0132 set_package_properties(KF6KIO PROPERTIES 0133 DESCRIPTION "File management libraries used for file browsing." 0134 TYPE REQUIRED) 0135 find_package(KF6QQC2DesktopStyle ${REQUIRED_KF_VERSION} CONFIG QUIET) 0136 set_package_properties(KF6QQC2DesktopStyle PROPERTIES 0137 DESCRIPTION "KDE QtQuick style for desktop" 0138 TYPE REQUIRED) 0139 endif() 0140 0141 find_package(UPNPQT CONFIG QUIET) 0142 set_package_properties(UPNPQT PROPERTIES 0143 DESCRIPTION "UPNP layer build with Qt. UPnP support is currently broken. You should probably avoid this dependency." 0144 URL "https://gitlab.com/homeautomationqt/upnp-player-qt" 0145 TYPE OPTIONAL) 0146 0147 if (UPNPQT_FOUND) 0148 message(WARNING "UPnP support is experimental and may not work.") 0149 endif() 0150 0151 find_package(LIBVLC QUIET) 0152 set_package_properties(LIBVLC PROPERTIES 0153 DESCRIPTION "libvlc allows to play music in Elisa (otherwise it will use QtMultimedia)" 0154 URL "https://www.videolan.org/vlc/libvlc.html" 0155 TYPE RECOMMENDED) 0156 0157 include(FeatureSummary) 0158 include(GenerateExportHeader) 0159 include(ECMSetupVersion) 0160 include(ECMGenerateHeaders) 0161 include(ECMGenerateDBusServiceFile) 0162 include(CMakePackageConfigHelpers) 0163 include(ECMDeprecationSettings) 0164 0165 set(KFXmlGui_FOUND ${KF6XmlGui_FOUND}) 0166 set(KFCrash_FOUND ${KF6Crash_FOUND}) 0167 set(KFDBusAddons_FOUND ${KF6DBusAddons_FOUND}) 0168 set(KFConfigWidgets_FOUND ${KF6ConfigWidgets_FOUND}) 0169 set(KFKIO_FOUND ${KF6KIO_FOUND}) 0170 set(KFFileMetaData_FOUND ${KF6FileMetaData_FOUND}) 0171 0172 configure_file(config-upnp-qt.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config-upnp-qt.h) 0173 0174 ecm_setup_version(${RELEASE_SERVICE_VERSION} 0175 VARIABLE_PREFIX ELISA 0176 VERSION_HEADER elisa-version.h) 0177 0178 set(QML_IMPORT_PATH ${CMAKE_BINARY_DIR}/bin CACHE STRING "" FORCE) 0179 0180 ecm_set_disabled_deprecation_versions( 0181 QT 5.15.2 0182 KF 5.101 0183 ) 0184 0185 0186 add_subdirectory(src) 0187 add_subdirectory(icons) 0188 if (BUILD_TESTING) 0189 add_subdirectory(autotests) 0190 endif() 0191 add_subdirectory(doc) 0192 0193 if (KF6DBusAddons_FOUND) 0194 ecm_generate_dbus_service_file( 0195 NAME org.kde.elisa 0196 EXECUTABLE ${KDE_INSTALL_FULL_BINDIR}/elisa 0197 DESTINATION ${KDE_INSTALL_DBUSSERVICEDIR} 0198 ) 0199 set(ELISA_DBUSACTIVATABLE "DBusActivatable=true") 0200 else() 0201 set(ELISA_DBUSACTIVATABLE) 0202 endif() 0203 0204 configure_file(org.kde.elisa.desktop.cmake ${CMAKE_CURRENT_BINARY_DIR}/org.kde.elisa.desktop @ONLY) 0205 install( 0206 PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/org.kde.elisa.desktop 0207 DESTINATION ${KDE_INSTALL_APPDIR} 0208 ) 0209 0210 install( 0211 FILES org.kde.elisa.appdata.xml 0212 DESTINATION ${KDE_INSTALL_METAINFODIR} 0213 ) 0214 0215 ki18n_install(po) 0216 if (KF6DocTools_FOUND) 0217 kdoctools_install(po) 0218 endif() 0219 0220 install(FILES elisa.categories DESTINATION ${KDE_INSTALL_LOGGINGCATEGORIESDIR}) 0221 0222 if (ANDROID) 0223 file(COPY androidResources/icon.png androidResources/splash.xml androidResources/vendor_logo.png androidResources/splash_logo.png 0224 DESTINATION ${CMAKE_SOURCE_DIR}/data/res/drawable) 0225 0226 configure_file(${CMAKE_CURRENT_SOURCE_DIR}/data/version.gradle.in ${CMAKE_BINARY_DIR}/version.gradle) 0227 endif() 0228 0229 feature_summary(WHAT ALL INCLUDE_QUIET_PACKAGES FATAL_ON_MISSING_REQUIRED_PACKAGES) 0230