Warning, /plasma/plasma-mobile/CMakeLists.txt is written in an unsupported language. File is not indexed.

0001 # SPDX-FileCopyrightText: 2014-2020 Marco Martin <mart@kde.org>
0002 # SPDX-FileCopyrightText: 2017-2021 Bhushan Shah <bshah@kde.org>
0003 # SPDX-FileCopyrightText: 2019-2021 Nicolas Fella <nicolas.fella@kde.org>
0004 # SPDX-FileCopyrightText: 2022 Devin Lin <devin@kde.org>
0005 # SPDX-License-Identifier: GPL-2.0-or-later
0006 
0007 cmake_minimum_required(VERSION 3.16)
0008 
0009 project(plasma-mobile)
0010 set(PROJECT_VERSION "6.0.80")
0011 set(PROJECT_VERSION_MAJOR 6)
0012 
0013 set(PROJECT_DEP_VERSION "6.0.80")
0014 set(QT_MIN_VERSION "6.6.0")
0015 set(KF6_MIN_VERSION "5.240.0")
0016 set(KDE_COMPILERSETTINGS_LEVEL "5.82")
0017 
0018 set(CMAKE_CXX_STANDARD 20)
0019 set(CMAKE_CXX_STANDARD_REQUIRED ON)
0020 
0021 find_package(ECM ${KF6_MIN_VERSION} REQUIRED NO_MODULE)
0022 set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH})
0023 
0024 set(KF_IGNORE_PLATFORM_CHECK ON CACHE BOOL "Don't check platform that is being built on")
0025 
0026 include(KDEInstallDirs)
0027 include(KDECMakeSettings)
0028 include(KDECompilerSettings NO_POLICY_SCOPE)
0029 include(ECMOptionalAddSubdirectory)
0030 include(ECMInstallIcons)
0031 include(ECMSetupVersion)
0032 include(ECMMarkNonGuiExecutable)
0033 include(ECMGenerateHeaders)
0034 include(ECMFindQmlModule)
0035 include(ECMGenerateQmlTypes)
0036 include(ECMFindQmlModule)
0037 include(GenerateExportHeader)
0038 include(KDEGitCommitHooks)
0039 include(KDEClangFormat)
0040 include(FeatureSummary)
0041 
0042 add_definitions(-DQT_NO_URL_CAST_FROM_STRING)
0043 
0044 ecm_setup_version(${PROJECT_VERSION}
0045     VARIABLE_PREFIX PLASMA_MOBILE
0046     VERSION_HEADER ${CMAKE_CURRENT_BINARY_DIR}/version.h
0047 )
0048 
0049 find_package(Qt6 ${QT_MIN_VERSION} CONFIG REQUIRED
0050     Core
0051     Qml
0052     Quick
0053     Gui
0054     Sensors
0055 )
0056 
0057 find_package(KF6 ${KF6_MIN_VERSION} REQUIRED COMPONENTS
0058     I18n
0059     GlobalAccel
0060     KIO
0061     Config
0062     DBusAddons
0063     ItemModels
0064     Service
0065     Notifications
0066     ModemManagerQt
0067     NetworkManagerQt
0068     KCMUtils
0069     Package
0070     DBusAddons
0071     JobWidgets
0072 )
0073 
0074 find_package(Plasma CONFIG REQUIRED)
0075 find_package(PlasmaQuick CONFIG REQUIRED)
0076 find_package(KF6Screen CONFIG REQUIRED)
0077 find_package(KWayland CONFIG REQUIRED)
0078 
0079 find_package(PkgConfig REQUIRED)
0080 
0081 find_package(QCoro6 REQUIRED COMPONENTS DBus)
0082 qcoro_enable_coroutines()
0083 kde_enable_exceptions()
0084 
0085 pkg_check_modules(GOBJECT gobject-2.0 REQUIRED IMPORTED_TARGET)
0086 pkg_check_modules(GIO gio-2.0 REQUIRED IMPORTED_TARGET)
0087 
0088 find_package(KF6KirigamiAddons 0.6 REQUIRED)
0089 find_package(epoxy REQUIRED)
0090 find_package(XCB REQUIRED COMPONENTS XCB)
0091 find_package(KWin ${PROJECT_DEP_VERSION} REQUIRED COMPONENTS
0092     kwin
0093 )
0094 
0095 find_package(LibKWorkspace CONFIG REQUIRED)
0096 find_package(Libudev REQUIRED)
0097 
0098 find_package(KWinDBusInterface)
0099 set_package_properties(KWinDBusInterface PROPERTIES DESCRIPTION "KWin DBus interface"
0100     TYPE REQUIRED
0101     PURPOSE "Needed for virtual keyboard toggle button"
0102 )
0103 
0104 include(CheckIncludeFiles)
0105 
0106 ecm_find_qmlmodule(org.kde.pipewire 0.1)
0107 
0108 plasma_install_package(lookandfeel org.kde.breeze.mobile look-and-feel lookandfeel)
0109 plasma_install_package(shell org.kde.plasma.mobileshell shells)
0110 
0111 add_subdirectory(bin)
0112 add_subdirectory(containments)
0113 add_subdirectory(components)
0114 add_subdirectory(quicksettings)
0115 add_subdirectory(kcms)
0116 add_subdirectory(kded)
0117 add_subdirectory(kwin)
0118 add_subdirectory(envmanager)
0119 add_subdirectory(initialstart)
0120 
0121 find_program(PlasmaOpenSettings plasma-open-settings)
0122 set_package_properties(PlasmaOpenSettings PROPERTIES
0123                                           URL https://invent.kde.org/plasma/kde-cli-tools/
0124                                           DESCRIPTION "Opens KCMs properly"
0125                                           TYPE RUNTIME
0126                                           PURPOSE "Used on the top panel")
0127 
0128 feature_summary(WHAT ALL INCLUDE_QUIET_PACKAGES FATAL_ON_MISSING_REQUIRED_PACKAGES)
0129 
0130 # add clang-format target for all our real source files
0131 file(GLOB_RECURSE ALL_CLANG_FORMAT_SOURCE_FILES *.cpp *.h)
0132 kde_clang_format(${ALL_CLANG_FORMAT_SOURCE_FILES})
0133 kde_configure_git_pre_commit_hook(CHECKS CLANG_FORMAT)
0134 
0135 ki18n_install(po)