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)