Warning, /plasma/plasma-nm/CMakeLists.txt is written in an unsupported language. File is not indexed.
0001 cmake_minimum_required(VERSION 3.16)
0002
0003 project(plasma-networkmanagement)
0004
0005 set(PROJECT_VERSION "6.0.80")
0006 set(PROJECT_VERSION_MAJOR 6)
0007
0008 set(QT_MIN_VERSION "6.6.0")
0009 set(KF6_MIN_VERSION "5.240.0")
0010 set(KDE_COMPILERSETTINGS_LEVEL "5.82")
0011
0012 set(CMAKE_CXX_STANDARD 20)
0013 set(CMAKE_CXX_STANDARD_REQUIRED ON)
0014
0015 ################# set KDE specific information #################
0016
0017 find_package(ECM ${KF6_MIN_VERSION} REQUIRED NO_MODULE)
0018 set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${ECM_MODULE_PATH})
0019
0020 option(BUILD_OPENCONNECT "Build OpenConnect VPN plugin" ON)
0021
0022 include(KDEInstallDirs)
0023 include(KDECMakeSettings)
0024 include(KDECompilerSettings NO_POLICY_SCOPE)
0025 include(KDEClangFormat)
0026 include(ECMFindQmlModule)
0027 include(ECMQmlModule)
0028 include(KDEGitCommitHooks)
0029 include(ECMQtDeclareLoggingCategory)
0030
0031 include(FeatureSummary)
0032 include(GenerateExportHeader)
0033
0034 find_package(Qt6 ${QT_MIN_VERSION} CONFIG REQUIRED COMPONENTS
0035 Core
0036 DBus
0037 Gui
0038 Network
0039 Quick
0040 QuickWidgets
0041 Widgets
0042 )
0043
0044 find_package(PkgConfig REQUIRED)
0045
0046 if(BUILD_OPENCONNECT)
0047 pkg_check_modules(OPENCONNECT IMPORTED_TARGET openconnect>=3.99)
0048 if(NOT TARGET PkgConfig::OPENCONNECT)
0049 set(BUILD_OPENCONNECT OFF)
0050 endif()
0051 endif()
0052
0053 if(BUILD_OPENCONNECT)
0054 find_package(Qt6WebEngineWidgets ${QT_MIN_VERSION} CONFIG REQUIRED)
0055 endif()
0056
0057 find_package(KF6 ${KF6_MIN_VERSION} REQUIRED
0058 ColorScheme
0059 Completion
0060 CoreAddons
0061 DBusAddons
0062 KIO
0063 I18n
0064 NetworkManagerQt
0065 Notifications
0066 Service
0067 Solid
0068 Wallet
0069 WidgetsAddons
0070 WindowSystem
0071 KCMUtils
0072 Svg
0073 ModemManagerQt
0074 )
0075
0076 find_package(Plasma ${PROJECT_VERSION} REQUIRED)
0077
0078 ecm_find_qmlmodule(org.kde.prison 1.0)
0079
0080 find_package(KF6Kirigami2 ${KF6_MIN_VERSION} CONFIG)
0081 set_package_properties(KF6Kirigami2 PROPERTIES
0082 DESCRIPTION "A QtQuick based components set"
0083 PURPOSE "Required at runtime by the KCMs"
0084 TYPE RUNTIME
0085 )
0086
0087 find_package(Qca-qt6 2.1.0)
0088 set_package_properties(Qca-qt6 PROPERTIES DESCRIPTION "Support for encryption"
0089 URL "https://download.kde.org/stable/qca-qt5/"
0090 TYPE REQUIRED)
0091
0092 find_package(KF6Prison ${KF6_MIN_VERSION})
0093 set_package_properties(KF6Prison PROPERTIES DESCRIPTION "Prison library"
0094 URL "https://commits.kde.org/prison"
0095 TYPE RUNTIME
0096 PURPOSE "Needed to create mobile barcodes for WiFi networks"
0097 )
0098
0099 pkg_check_modules(NETWORKMANAGER IMPORTED_TARGET libnm>1.4.0 REQUIRED)
0100 pkg_check_modules(MOBILEBROADBANDPROVIDERINFO mobile-broadband-provider-info)
0101 pkg_get_variable(BROADBANDPROVIDER_DATABASE mobile-broadband-provider-info database)
0102
0103 find_package(QCoro6 REQUIRED COMPONENTS Core DBus)
0104
0105 qcoro_enable_coroutines()
0106
0107 add_definitions(
0108 -DQT_DISABLE_DEPRECATED_BEFORE=0x050f00
0109 -DQT_DEPRECATED_WARNINGS_SINCE=0x060000
0110 -DKF_DISABLE_DEPRECATED_BEFORE_AND_AT=0x055800
0111 -DKF_DEPRECATED_WARNINGS_SINCE=0x060000
0112 )
0113
0114
0115 add_definitions(-DQT_NO_URL_CAST_FROM_STRING)
0116
0117 remove_definitions(-DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_FROM_BYTEARRAY)
0118
0119 add_subdirectory(applet)
0120 add_subdirectory(kded)
0121 add_subdirectory(kcm)
0122 add_subdirectory(libs)
0123 add_subdirectory(vpn)
0124
0125 # Enable unit testing
0126 if (BUILD_TESTING)
0127 add_subdirectory(tests)
0128 endif()
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 ecm_qt_install_logging_categories(
0136 EXPORT PLASMANM
0137 FILE plasma-nm.categories
0138 DESTINATION ${KDE_INSTALL_LOGGINGCATEGORIESDIR}
0139 )
0140
0141 ki18n_install(po)
0142
0143 feature_summary(WHAT ALL INCLUDE_QUIET_PACKAGES FATAL_ON_MISSING_REQUIRED_PACKAGES)