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)