Warning, /plasma/discover/CMakeLists.txt is written in an unsupported language. File is not indexed.
0001 cmake_minimum_required(VERSION 3.16) 0002 0003 project(discover) 0004 set(PROJECT_VERSION "6.0.80") 0005 set(PROJECT_VERSION_MAJOR 6) 0006 0007 set(QT_MIN_VERSION "6.6.0") 0008 set(KF6_MIN_VERSION "5.240.0") 0009 set(KDE_COMPILERSETTINGS_LEVEL "5.85") 0010 0011 find_package(ECM ${KF6_MIN_VERSION} REQUIRED NO_MODULE) 0012 0013 set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake") 0014 0015 include(KDEInstallDirs) 0016 include(KDECMakeSettings) 0017 include(KDECompilerSettings NO_POLICY_SCOPE) 0018 include(ECMInstallIcons) 0019 include(ECMMarkAsTest) 0020 include(ECMAddTests) 0021 include(GenerateExportHeader) 0022 include(ECMQtDeclareLoggingCategory) 0023 include(KDEClangFormat) 0024 include(KDEGitCommitHooks) 0025 find_package(Qt6 ${QT_MIN_VERSION} REQUIRED CONFIG COMPONENTS Widgets Test Network Concurrent DBus Quick) 0026 find_package(Qt6 ${QT_MIN_VERSION} CONFIG OPTIONAL_COMPONENTS WebView) 0027 0028 find_package(PkgConfig REQUIRED) 0029 0030 find_package(KF6 ${KF6_MIN_VERSION} REQUIRED Kirigami CoreAddons Config Crash DBusAddons I18n Archive XmlGui KIO KCMUtils IdleTime Notifications Purpose Auth StatusNotifierItem) 0031 find_package(KF6 ${KF6_MIN_VERSION} OPTIONAL_COMPONENTS UserFeedback) 0032 0033 find_package(packagekitqt6 1.0.1 CONFIG) 0034 find_package(AppStreamQt 1.0 CONFIG REQUIRED) 0035 find_package(KF6Attica 5.23 CONFIG) 0036 find_package(KF6NewStuff 5.53 CONFIG) 0037 0038 find_package(KF${QT_MAJOR_VERSION}KirigamiAddons REQUIRED) 0039 set_package_properties(KF${QT_MAJOR_VERSION}KirigamiAddons PROPERTIES 0040 TYPE REQUIRED 0041 PURPOSE "Provides additional visual components" 0042 ) 0043 0044 pkg_check_modules(Flatpak IMPORTED_TARGET flatpak>=0.11.8) 0045 pkg_check_modules(Fwupd IMPORTED_TARGET fwupd>=1.9.4) 0046 pkg_check_modules(Markdown IMPORTED_TARGET libmarkdown) 0047 if(Markdown_FOUND AND Markdown_VERSION VERSION_GREATER_EQUAL 3) 0048 add_definitions(-DMARKDOWN3) 0049 endif() 0050 pkg_check_modules(Ostree IMPORTED_TARGET ostree-1) 0051 pkg_check_modules(RpmOstree IMPORTED_TARGET rpm-ostree-1) 0052 0053 list(APPEND CMAKE_AUTOMOC_MACRO_NAMES "DISCOVER_BACKEND_PLUGIN") 0054 0055 set(CMAKE_CXX_STANDARD 17) 0056 add_definitions(-DQT_NO_SIGNALS_SLOTS_KEYWORDS -DQT_NO_URL_CAST_FROM_STRING) 0057 0058 configure_file(DiscoverVersion.h.in DiscoverVersion.h) 0059 0060 add_subdirectory(appiumtests) 0061 add_subdirectory(libdiscover) 0062 add_subdirectory(discover) 0063 add_subdirectory(exporter) 0064 add_subdirectory(update) 0065 0066 option(WITH_KCM "Build and install the updates KCM" ON) 0067 if(WITH_KCM) 0068 add_subdirectory(kcm) 0069 endif() 0070 0071 option(WITH_NOTIFIER "Build and install the notifier plasmoid" ON) 0072 if(WITH_NOTIFIER) 0073 add_subdirectory(notifier) 0074 endif() 0075 0076 set_package_properties(KF6Attica PROPERTIES 0077 DESCRIPTION "KDE Framework that implements the Open Collaboration Services API" 0078 PURPOSE "Required to build the KNewStuff3 backend" 0079 TYPE OPTIONAL) 0080 set_package_properties(KF6Kirigami2 PROPERTIES 0081 DESCRIPTION "KDE's lightweight user interface framework for mobile and convergent applications" 0082 URL "https://techbase.kde.org/Kirigami" 0083 PURPOSE "Required by discover qml components" 0084 TYPE RUNTIME) 0085 set_package_properties(KF6NewStuff PROPERTIES 0086 DESCRIPTION "Qt library that allows to interact with KNewStuff implementations" 0087 PURPOSE "Required to build the KNS backend" 0088 TYPE OPTIONAL) 0089 set_package_properties(KF6UserFeedback PROPERTIES 0090 DESCRIPTION "Framework for collecting feedback from application users via telemetry and targeted surveys" 0091 URL "https://invent.kde.org/frameworks/kuserfeedback" 0092 PURPOSE "Required for submission of telemetry data" 0093 TYPE OPTIONAL) 0094 set_package_properties(packagekitqt6 PROPERTIES 0095 DESCRIPTION "Library that exposes PackageKit resources" 0096 URL "https://www.freedesktop.org/software/PackageKit/" 0097 PURPOSE "Required to build the PackageKit backend" 0098 TYPE OPTIONAL) 0099 set_package_properties(AppStreamQt PROPERTIES 0100 DESCRIPTION "Library that lists Appstream resources" 0101 URL "https://www.freedesktop.org" 0102 PURPOSE "Required to build the PackageKit, Flatpak and Snap backends" 0103 TYPE OPTIONAL) 0104 add_feature_info(Flatpak Flatpak_FOUND 0105 "Library that exposes flatpak repositories. Required to build the Flatpak backend" 0106 ) 0107 add_feature_info(Fwupd Fwupd_FOUND "Exposes fwupd") 0108 add_feature_info(Ostree Ostree_FOUND 0109 "Library to manage ostree repository. Required to build the rpm-ostree backend" 0110 ) 0111 add_feature_info(RpmOstree RpmOstree_FOUND 0112 "rpm-ostree binary to manage the system. Required to build the rpm-ostree backend" 0113 ) 0114 0115 feature_summary(WHAT ALL FATAL_ON_MISSING_REQUIRED_PACKAGES) 0116 0117 # add clang-format target for all our real source files 0118 file(GLOB_RECURSE ALL_CLANG_FORMAT_SOURCE_FILES *.cpp *.h) 0119 kde_clang_format(${ALL_CLANG_FORMAT_SOURCE_FILES}) 0120 kde_configure_git_pre_commit_hook(CHECKS CLANG_FORMAT) 0121 0122 ecm_qt_install_logging_categories( 0123 EXPORT DISCOVER 0124 FILE discover.categories 0125 DESTINATION ${KDE_INSTALL_LOGGINGCATEGORIESDIR} 0126 ) 0127 0128 ki18n_install(po)