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