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 "5.27.80") 0006 set(PROJECT_VERSION_MAJOR 5) 0007 0008 set(QT_MIN_VERSION "6.4.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(KDEGitCommitHooks) 0028 include(ECMQtDeclareLoggingCategory) 0029 0030 include(FeatureSummary) 0031 include(GenerateExportHeader) 0032 0033 find_package(Qt6 ${QT_MIN_VERSION} CONFIG REQUIRED COMPONENTS 0034 Core 0035 DBus 0036 Gui 0037 Network 0038 Quick 0039 QuickWidgets 0040 Widgets 0041 ) 0042 0043 find_package(PkgConfig REQUIRED) 0044 0045 if(BUILD_OPENCONNECT) 0046 pkg_check_modules(OPENCONNECT IMPORTED_TARGET openconnect>=3.99) 0047 if(NOT TARGET PkgConfig::OPENCONNECT) 0048 set(BUILD_OPENCONNECT OFF) 0049 endif() 0050 endif() 0051 0052 if(BUILD_OPENCONNECT) 0053 find_package(Qt6WebEngineWidgets ${QT_MIN_VERSION} CONFIG REQUIRED) 0054 endif() 0055 0056 find_package(KF6 ${KF6_MIN_VERSION} REQUIRED 0057 ConfigWidgets 0058 Completion 0059 CoreAddons 0060 Declarative 0061 DBusAddons 0062 KIO 0063 I18n 0064 NetworkManagerQt 0065 Notifications 0066 Plasma 0067 Service 0068 Solid 0069 Wallet 0070 WidgetsAddons 0071 WindowSystem 0072 KCMUtils 0073 Svg 0074 ModemManagerQt 0075 ) 0076 0077 ecm_find_qmlmodule(org.kde.prison 1.0) 0078 0079 find_package(KF6Kirigami2 ${KF6_MIN_VERSION} CONFIG) 0080 set_package_properties(KF6Kirigami2 PROPERTIES 0081 DESCRIPTION "A QtQuick based components set" 0082 PURPOSE "Required at runtime by the KCMs" 0083 TYPE RUNTIME 0084 ) 0085 0086 find_package(Qca-qt6 2.1.0) 0087 set_package_properties(Qca-qt6 PROPERTIES DESCRIPTION "Support for encryption" 0088 URL "https://download.kde.org/stable/qca-qt5/" 0089 TYPE REQUIRED) 0090 0091 find_package(KF6Prison ${KF6_MIN_VERSION}) 0092 set_package_properties(KF6Prison PROPERTIES DESCRIPTION "Prison library" 0093 URL "https://commits.kde.org/prison" 0094 TYPE RUNTIME 0095 PURPOSE "Needed to create mobile barcodes for WiFi networks" 0096 ) 0097 0098 pkg_check_modules(NETWORKMANAGER IMPORTED_TARGET libnm>1.4.0 REQUIRED) 0099 pkg_check_modules(MOBILEBROADBANDPROVIDERINFO mobile-broadband-provider-info) 0100 pkg_get_variable(BROADBANDPROVIDER_DATABASE mobile-broadband-provider-info database) 0101 0102 find_package(QCoro6 REQUIRED COMPONENTS Core DBus) 0103 0104 qcoro_enable_coroutines() 0105 0106 add_definitions( 0107 -DQT_DISABLE_DEPRECATED_BEFORE=0x050f00 0108 -DQT_DEPRECATED_WARNINGS_SINCE=0x060000 0109 -DKF_DISABLE_DEPRECATED_BEFORE_AND_AT=0x055800 0110 -DKF_DEPRECATED_WARNINGS_SINCE=0x060000 0111 ) 0112 0113 0114 add_definitions(-DQT_NO_URL_CAST_FROM_STRING) 0115 0116 remove_definitions(-DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_FROM_BYTEARRAY) 0117 0118 add_subdirectory(applet) 0119 add_subdirectory(kded) 0120 add_subdirectory(kcm) 0121 add_subdirectory(libs) 0122 add_subdirectory(vpn) 0123 0124 # Enable unit testing 0125 if (BUILD_TESTING) 0126 add_subdirectory(tests) 0127 endif() 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 ecm_qt_install_logging_categories( 0135 EXPORT PLASMANM 0136 FILE plasma-nm.categories 0137 DESTINATION ${KDE_INSTALL_LOGGINGCATEGORIESDIR} 0138 ) 0139 0140 ki18n_install(po) 0141 0142 feature_summary(WHAT ALL INCLUDE_QUIET_PACKAGES FATAL_ON_MISSING_REQUIRED_PACKAGES)