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)