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

0001 cmake_minimum_required(VERSION 3.16)
0002 
0003 project(kdeplasma-addons)
0004 set(PROJECT_VERSION "6.0.80")
0005 set(PROJECT_VERSION_MAJOR 6)
0006 
0007 ################# Disallow in-source build #################
0008 if("${CMAKE_SOURCE_DIR}" STREQUAL "${CMAKE_BINARY_DIR}")
0009     message(FATAL_ERROR "plasma requires an out of source build. Please create a separate build directory and run 'cmake path_to_plasma [options]' there.")
0010 endif()
0011 
0012 set(PROJECT_DEP_VERSION "6.0.80")
0013 set(QT_MIN_VERSION "6.6.0")
0014 set(KF6_MIN_VERSION 5.240.0)
0015 set(KDE_COMPILERSETTINGS_LEVEL "5.82")
0016 
0017 set(CMAKE_CXX_STANDARD 20)
0018 set(CMAKE_CXX_STANDARD_REQUIRED ON)
0019 
0020 include(FeatureSummary)
0021 
0022 find_package(ECM ${KF6_MIN_VERSION} REQUIRED NO_MODULE)
0023 set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH})
0024 
0025 include(KDEInstallDirs)
0026 include(KDECMakeSettings)
0027 include(KDECompilerSettings NO_POLICY_SCOPE)
0028 include(ECMQtDeclareLoggingCategory)
0029 include(ECMGenerateExportHeader)
0030 include(ECMInstallIcons)
0031 include(KDEPackageAppTemplates)
0032 include(GenerateExportHeader)
0033 include(CMakePackageConfigHelpers)
0034 include(KDEClangFormat)
0035 include(KDEGitCommitHooks)
0036 include(ECMDeprecationSettings)
0037 include(ECMQmlModule)
0038 
0039 find_package(Qt6 ${QT_MIN_VERSION} CONFIG REQUIRED
0040     Core
0041     Gui
0042     DBus
0043     Network
0044     Quick
0045     Qml
0046     Widgets
0047     Test
0048     Core5Compat
0049 )
0050 
0051 find_package(KF6 ${KF6_MIN_VERSION} REQUIRED COMPONENTS
0052     Config
0053     CoreAddons
0054     Declarative
0055     GlobalAccel
0056     Holidays
0057     I18n
0058     KIO
0059     KCMUtils
0060     Notifications
0061     Runner
0062     Service
0063     Sonnet
0064     UnitConversion
0065     XmlGui
0066     NewStuff
0067     JobWidgets
0068 )
0069 
0070 find_package(Plasma5Support ${PROJECT_DEP_VERSION} REQUIRED)
0071 find_package(Plasma ${PROJECT_DEP_VERSION} REQUIRED)
0072 find_package(PlasmaQuick ${PROJECT_DEP_VERSION} REQUIRED)
0073 
0074 find_package(KF6Purpose CONFIG QUIET)
0075 set_package_properties(KF6Purpose PROPERTIES
0076     DESCRIPTION "Framework for cross-application services and actions"
0077     PURPOSE "Needed for QuickShare applet"
0078     URL "https://commits.kde.org/purpose"
0079     TYPE RUNTIME
0080 )
0081 
0082 find_package(KirigamiAddons CONFIG)
0083 set_package_properties(KirigamiAddons PROPERTIES
0084     DESCRIPTION "Extra controls for Kirigami applications"
0085     PURPOSE "Required at runtime for the User List widget"
0086     TYPE RUNTIME
0087 )
0088 
0089 find_package(KItemModels CONFIG)
0090 set_package_properties(KItemModels PROPERTIES
0091     DESCRIPTION "Set of item models extending the Qt model-view framework"
0092     PURPOSE "Required at runtime for the Dictionary, Kate Profiles, and Konsole Profiles applets"
0093     TYPE RUNTIME
0094 )
0095 
0096 find_package(ICU 66.1 COMPONENTS uc i18n)
0097 set_package_properties(ICU
0098         PROPERTIES DESCRIPTION "Unicode and Globalization support for software applications"
0099         TYPE OPTIONAL
0100         PURPOSE "Provides alternate calendar systems that are not available in QCalendar"
0101         )
0102 if(ICU_FOUND)
0103     set(HAVE_ICU TRUE)
0104 endif()
0105 
0106 add_definitions(
0107     -DQT_DEPRECATED_WARNINGS
0108     -DQT_NO_URL_CAST_FROM_STRING
0109 )
0110 
0111 ecm_set_disabled_deprecation_versions(
0112     QT 6.5.0
0113 )
0114 
0115 add_subdirectory(dict)
0116 add_subdirectory(profiles)
0117 add_subdirectory(applets)
0118 add_subdirectory(runners)
0119 
0120 add_subdirectory(wallpapers)
0121 
0122 add_subdirectory(kwin)
0123 
0124 add_subdirectory(plasmacalendarplugins)
0125 
0126 add_subdirectory(templates)
0127 add_subdirectory(appiumtests)
0128 
0129 # add clang-format target for all our real source files
0130 file(GLOB_RECURSE ALL_CLANG_FORMAT_SOURCE_FILES *.cpp *.h)
0131 kde_clang_format(${ALL_CLANG_FORMAT_SOURCE_FILES})
0132 kde_configure_git_pre_commit_hook(CHECKS CLANG_FORMAT)
0133 
0134 ki18n_install(po)
0135 ecm_qt_install_logging_categories(EXPORT KDEPLASMAADDONS
0136     FILE kdeplasma-addons.categories
0137     DESTINATION ${KDE_INSTALL_LOGGINGCATEGORIESDIR}
0138 )
0139 
0140 
0141 feature_summary(WHAT ALL INCLUDE_QUIET_PACKAGES FATAL_ON_MISSING_REQUIRED_PACKAGES)