Warning, /plasma/libksysguard/CMakeLists.txt is written in an unsupported language. File is not indexed.
0001 cmake_minimum_required(VERSION 3.16) 0002 0003 project(libksysguard) 0004 0005 set(PROJECT_VERSION "6.0.80") 0006 set(PROJECT_VERSION_MAJOR 6) 0007 0008 # check with non-Plasma consumers (e.g. KDevelop) before bumping these versions to make sure the KDE CI does not break 0009 set(QT_MIN_VERSION "6.6.0") 0010 set(KF6_MIN_VERSION "5.240.0") 0011 set(KDE_COMPILERSETTINGS_LEVEL "5.82") 0012 0013 find_package(ECM ${KF6_MIN_VERSION} REQUIRED NO_MODULE) 0014 set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/cmake) 0015 0016 include(KDEInstallDirs) 0017 include(KDECMakeSettings) 0018 include(KDECompilerSettings NO_POLICY_SCOPE) 0019 include(KDEClangFormat) 0020 include(KDEGitCommitHooks) 0021 0022 include(ECMAddTests) 0023 include(ECMInstallIcons) 0024 include(ECMSetupVersion) 0025 include(ECMQtDeclareLoggingCategory) 0026 include(ECMDeprecationSettings) 0027 0028 include(CMakePackageConfigHelpers) 0029 include(CheckIncludeFiles) 0030 include(CheckLibraryExists) 0031 include(FeatureSummary) 0032 include(GenerateExportHeader) 0033 0034 find_package(Qt6 ${QT_MIN_VERSION} REQUIRED CONFIG COMPONENTS DBus Network Widgets Qml Quick) 0035 find_package(Qt6WebEngineWidgets ${QT_MIN_VERSION} CONFIG) 0036 set_package_properties(Qt6WebEngineWidgets PROPERTIES 0037 URL "git://code.qt.org/qt/qtwebenginewidgets.git" 0038 DESCRIPTION "Qt WebEngine module (web browsing engine)" 0039 TYPE OPTIONAL 0040 PURPOSE "Used by the HTML-based GUI ksysguard library" 0041 ) 0042 find_package(Qt6WebChannel ${QT_MIN_VERSION} CONFIG) 0043 set_package_properties(Qt6WebChannel PROPERTIES 0044 URL "git://code.qt.org/qt/qtwebchannel.git" 0045 DESCRIPTION "Qt WebChannel module" 0046 TYPE OPTIONAL 0047 PURPOSE "Used by the HTML-based GUI ksysguard library" 0048 ) 0049 0050 0051 find_package(KF6 ${KF6_MIN_VERSION} REQUIRED COMPONENTS CoreAddons Config I18n JobWidgets WindowSystem Auth WidgetsAddons IconThemes ConfigWidgets Service GlobalAccel KIO Package NewStuff Solid) 0052 0053 find_package(ZLIB REQUIRED) 0054 set_package_properties(ZLIB PROPERTIES DESCRIPTION "Support for gzip compressed files and data streams" 0055 URL "https://zlib.net/" 0056 TYPE REQUIRED 0057 ) 0058 0059 check_library_exists(c clock_gettime "time.h" HAVE_CLOCK_GETTIME_C) 0060 0061 ecm_setup_version(${PROJECT_VERSION} 0062 VARIABLE_PREFIX KSYSGUARD 0063 VERSION_HEADER "${CMAKE_CURRENT_BINARY_DIR}/ksysguard_version.h" 0064 PACKAGE_VERSION_FILE "${CMAKE_CURRENT_BINARY_DIR}/KSysGuardConfigVersion.cmake" 0065 SOVERSION 10 0066 ) 0067 0068 option(WITH_X11 "Build with X11 support." ON) 0069 if(WITH_X11) 0070 find_package(X11) 0071 set_package_properties(X11 PROPERTIES DESCRIPTION "X11 libraries" 0072 URL "https://www.x.org" 0073 TYPE OPTIONAL 0074 PURPOSE "Required for building Process UI with X11 support" 0075 ) 0076 if(X11_FOUND) 0077 find_package(Qt6 ${QT_MIN_VERSION} CONFIG REQUIRED Gui) # qtx11extras_p.h 0078 set(HAVE_X11 1) 0079 find_library(X11_XRes_LIB XRes ${X11_LIB_SEARCH_PATH}) 0080 find_path(X11_XRes_INCLUDE_PATH X11/extensions/XRes.h ${X11_INC_SEARCH_PATH}) 0081 0082 if(X11_XRes_LIB AND X11_XRes_INCLUDE_PATH) 0083 set(HAVE_XRES 1) 0084 endif() 0085 endif() 0086 else() 0087 set(HAVE_X11 0) 0088 set(HAVE_XRES 0) 0089 endif() 0090 0091 set(WEBENGINE_SCRIPTING_ENABLED FALSE) 0092 if(Qt6WebEngineWidgets_FOUND AND Qt6WebChannel_FOUND) 0093 set(WEBENGINE_SCRIPTING_ENABLED TRUE) 0094 endif() 0095 add_feature_info("Scripting plugin support" WEBENGINE_SCRIPTING_ENABLED "Support scripting plugins using WebEngine and WebChannel") 0096 0097 if (${CMAKE_SYSTEM_NAME} MATCHES "Linux") 0098 find_package(NL) 0099 set_package_properties(NL PROPERTIES 0100 TYPE REQUIRED 0101 PURPOSE "Used for gathering socket info via the sock_diag netlink subsystem." 0102 URL "https://github.com/thom311/libnl/" 0103 ) 0104 find_package(libpcap) 0105 set_package_properties( 0106 libpcap PROPERTIES 0107 TYPE RECOMMENDED 0108 PURPOSE "libpcap is used for per-application network usage." 0109 ) 0110 0111 if(libpcap_FOUND ) 0112 set(BUILD_NETWORK_PLUGIN TRUE) 0113 0114 find_package(Libcap) 0115 set_package_properties(Libcap PROPERTIES 0116 TYPE OPTIONAL 0117 PURPOSE "Needed for setting capabilities of the per-application network plugin." 0118 ) 0119 endif() 0120 0121 find_package(Sensors) 0122 set_package_properties(Sensors PROPERTIES 0123 TYPE REQUIRED 0124 PURPOSE "Used for reading hardware sensors") 0125 endif() 0126 0127 configure_file(config-ksysguard.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config-ksysguard.h ) 0128 0129 option(BUILD_DESIGNERPLUGIN "Build plugin for Qt Designer" ON) 0130 add_feature_info(DESIGNERPLUGIN ${BUILD_DESIGNERPLUGIN} "Build plugin for Qt Designer") 0131 0132 option(ENABLE_KAUTH_HELPER "Build and install ksysguardprocesslist_helper KAuth helper" ON) 0133 add_feature_info(KAUTH_HELPER ${ENABLE_KAUTH_HELPER} "Build and install ksysguardprocesslist_helper KAuth helper") 0134 0135 ecm_set_disabled_deprecation_versions( 0136 QT 5.15.0 0137 ) 0138 0139 add_definitions(-DKF_DISABLE_DEPRECATED_BEFORE_AND_AT=0x055B00) 0140 add_definitions(-DKF_DEPRECATED_WARNINGS_SINCE=0x060000) 0141 add_definitions(-DQT_USE_QSTRINGBUILDER) 0142 0143 set(CMAKE_CXX_STANDARD 20) 0144 set(CMAKE_CXX_STANDARD_REQUIRED TRUE) 0145 0146 add_subdirectory( formatter ) 0147 add_subdirectory( lsofui ) 0148 add_subdirectory( processcore ) 0149 add_subdirectory( processui ) 0150 add_subdirectory( sensors ) 0151 add_subdirectory( faces ) 0152 add_subdirectory( signalplotter ) 0153 add_subdirectory( ksgrd ) 0154 add_subdirectory( systemstats ) 0155 0156 if(BUILD_TESTING) 0157 add_subdirectory( autotests ) 0158 endif() 0159 0160 # add clang-format target for all our real source files 0161 file(GLOB_RECURSE ALL_CLANG_FORMAT_SOURCE_FILES *.cpp *.h) 0162 kde_clang_format(${ALL_CLANG_FORMAT_SOURCE_FILES}) 0163 kde_configure_git_pre_commit_hook(CHECKS CLANG_FORMAT) 0164 0165 install(DIRECTORY scripts/ DESTINATION ${KDE_INSTALL_DATADIR}/ksysguard/scripts) 0166 0167 set(CMAKECONFIG_INSTALL_DIR ${KDE_INSTALL_LIBDIR}/cmake/KSysGuard) 0168 configure_package_config_file(KSysGuardConfig.cmake.in 0169 "${CMAKE_CURRENT_BINARY_DIR}/KSysGuardConfig.cmake" 0170 INSTALL_DESTINATION ${CMAKECONFIG_INSTALL_DIR}) 0171 0172 install(FILES 0173 ${CMAKE_CURRENT_BINARY_DIR}/KSysGuardConfig.cmake 0174 ${CMAKE_CURRENT_BINARY_DIR}/KSysGuardConfigVersion.cmake 0175 DESTINATION ${CMAKECONFIG_INSTALL_DIR}) 0176 0177 install(EXPORT libksysguardLibraryTargets 0178 NAMESPACE KSysGuard:: 0179 DESTINATION ${CMAKECONFIG_INSTALL_DIR} 0180 FILE KSysGuardLibraryTargets.cmake ) 0181 0182 ecm_qt_install_logging_categories( 0183 EXPORT LIBKSYSGUARD 0184 FILE libksysguard.categories 0185 DESTINATION ${KDE_INSTALL_LOGGINGCATEGORIESDIR} 0186 ) 0187 0188 ki18n_install(po) 0189 0190 feature_summary(WHAT ALL INCLUDE_QUIET_PACKAGES FATAL_ON_MISSING_REQUIRED_PACKAGES)