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