Warning, /plasma/discover/CMakeLists.txt is written in an unsupported language. File is not indexed.
0001 project(discover) 0002 set(PROJECT_VERSION "5.27.10") 0003 set(PROJECT_VERSION_MAJOR 5) 0004 0005 cmake_minimum_required(VERSION 3.16) 0006 0007 set(QT_MIN_VERSION "5.15.2") 0008 set(KF5_MIN_VERSION "5.102.0") 0009 set(KDE_COMPILERSETTINGS_LEVEL "5.82") 0010 0011 find_package(ECM ${KF5_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(Qt${QT_MAJOR_VERSION} ${QT_MIN_VERSION} REQUIRED CONFIG COMPONENTS Widgets Test Network Concurrent DBus Quick) 0026 find_package(Qt${QT_MAJOR_VERSION} ${QT_MIN_VERSION} CONFIG OPTIONAL_COMPONENTS WebView) 0027 0028 find_package(PkgConfig REQUIRED) 0029 0030 find_package(KF5 ${KF5_MIN_VERSION} REQUIRED CoreAddons Config Crash DBusAddons I18n Archive XmlGui KIO Declarative KCMUtils IdleTime Notifications Purpose) 0031 find_package(KF5Kirigami2 2.7.0) 0032 0033 find_package(AppStreamQt5 1.0 CONFIG) 0034 if (AppStreamQt5_FOUND) 0035 add_definitions(-DDISCOVER_USE_STABLE_APPSTREAM) 0036 set(DISCOVER_AppStreamQt_FOUND ${AppStreamQt5_FOUND}) 0037 set(DISCOVER_AppStreamQt_VERSION ${AppStreamQt5_VERSION}) 0038 set(DISCOVER_AppStreamQt_PACKAGE_NAME AppStreamQt5) 0039 else() 0040 find_package(AppStreamQt 0.15.3 CONFIG REQUIRED) 0041 set(DISCOVER_AppStreamQt_FOUND ${AppStreamQt_FOUND}) 0042 set(DISCOVER_AppStreamQt_VERSION ${AppStreamQt_VERSION}) 0043 set(DISCOVER_AppStreamQt_PACKAGE_NAME AppStreamQt) 0044 endif() 0045 find_package(packagekitqt5 1.0.1 CONFIG) 0046 find_package(KF5Attica 5.23 CONFIG) 0047 find_package(KF5NewStuff 5.53 CONFIG) 0048 0049 pkg_check_modules(Flatpak IMPORTED_TARGET flatpak>=0.11.8) 0050 pkg_check_modules(Fwupd IMPORTED_TARGET fwupd>=1.5.0) 0051 pkg_check_modules(Markdown IMPORTED_TARGET libmarkdown) 0052 if(Markdown_FOUND AND Markdown_VERSION VERSION_GREATER_EQUAL 3) 0053 add_definitions(-DMARKDOWN3) 0054 endif() 0055 pkg_check_modules(Ostree IMPORTED_TARGET ostree-1) 0056 pkg_check_modules(RpmOstree IMPORTED_TARGET rpm-ostree-1) 0057 find_package(KUserFeedback) 0058 0059 list(APPEND CMAKE_AUTOMOC_MACRO_NAMES "DISCOVER_BACKEND_PLUGIN") 0060 0061 set(CMAKE_CXX_STANDARD 17) 0062 add_definitions(-DQT_NO_SIGNALS_SLOTS_KEYWORDS -DQT_NO_URL_CAST_FROM_STRING) 0063 0064 configure_file(DiscoverVersion.h.in DiscoverVersion.h) 0065 0066 add_subdirectory(libdiscover) 0067 add_subdirectory(discover) 0068 add_subdirectory(exporter) 0069 add_subdirectory(update) 0070 0071 option(WITH_KCM "Build and install the updates KCM" ON) 0072 if(WITH_KCM) 0073 add_subdirectory(kcm) 0074 endif() 0075 0076 option(WITH_NOTIFIER "Build and install the notifier plasmoid" ON) 0077 if(WITH_NOTIFIER) 0078 add_subdirectory(notifier) 0079 endif() 0080 0081 set_package_properties(KF5Attica PROPERTIES 0082 DESCRIPTION "KDE Framework that implements the Open Collaboration Services API" 0083 PURPOSE "Required to build the KNewStuff3 backend" 0084 TYPE OPTIONAL) 0085 set_package_properties(KF5Kirigami2 PROPERTIES 0086 DESCRIPTION "KDE's lightweight user interface framework for mobile and convergent applications" 0087 URL "https://techbase.kde.org/Kirigami" 0088 PURPOSE "Required by discover qml components" 0089 TYPE RUNTIME) 0090 set_package_properties(KF5NewStuff PROPERTIES 0091 DESCRIPTION "Qt library that allows to interact with KNewStuff implementations" 0092 PURPOSE "Required to build the KNS backend" 0093 TYPE OPTIONAL) 0094 set_package_properties(packagekitqt5 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(${DISCOVER_AppStreamQt_PACKAGE_NAME} 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)