Warning, /plasma/kde-cli-tools/CMakeLists.txt is written in an unsupported language. File is not indexed.

0001 cmake_minimum_required(VERSION 3.16)
0002 
0003 project(KDE-CLI-Tools)
0004 set(PROJECT_VERSION "5.27.10")
0005 
0006 set(QT_MIN_VERSION "5.15.2")
0007 set(KF5_MIN_VERSION "5.102.0")
0008 set(KDE_COMPILERSETTINGS_LEVEL "5.82")
0009 
0010 set(CMAKE_CXX_STANDARD 17)
0011 set(CMAKE_CXX_STANDARD_REQUIRED ON)
0012 
0013 find_package(ECM ${KF5_MIN_VERSION} REQUIRED NO_MODULE)
0014 set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH})
0015 
0016 include(KDEInstallDirs)
0017 include(KDECMakeSettings)
0018 include(KDECompilerSettings NO_POLICY_SCOPE)
0019 include(ECMMarkAsTest)
0020 include(ECMMarkNonGuiExecutable)
0021 include(FeatureSummary)
0022 include(CheckIncludeFile)
0023 include(CheckIncludeFiles)
0024 include(CheckSymbolExists)
0025 include(ECMOptionalAddSubdirectory)
0026 include(KDEClangFormat)
0027 include(ECMDeprecationSettings)
0028 
0029 include(KDEGitCommitHooks)
0030 
0031 find_package(Qt${QT_MAJOR_VERSION} ${QT_MIN_VERSION} CONFIG REQUIRED COMPONENTS
0032     Widgets
0033     Svg
0034     DBus
0035 )
0036 
0037 find_package(Qt${QT_MAJOR_VERSION}Test ${QT_MIN_VERSION} CONFIG QUIET)
0038 set_package_properties(Qt${QT_MAJOR_VERSION}Test PROPERTIES
0039          PURPOSE "Required for tests"
0040          TYPE OPTIONAL
0041          )
0042 add_feature_info("Qt${QT_MAJOR_VERSION}Test" Qt${QT_MAJOR_VERSION}Test_FOUND "Required for building tests")
0043 if (NOT Qt${QT_MAJOR_VERSION}Test_FOUND)
0044     set(BUILD_TESTING OFF CACHE BOOL "Build the testing tree.")
0045 endif()
0046 
0047 find_package(KF5 ${KF5_MIN_VERSION} REQUIRED COMPONENTS
0048     Config
0049     DocTools
0050     IconThemes
0051     I18n
0052     KCMUtils
0053     KIO
0054     Service
0055     WindowSystem
0056     Activities
0057     Parts
0058     CoreAddons
0059     OPTIONAL_COMPONENTS
0060     Su
0061     QUIET
0062 )
0063 find_package(LibKWorkspace ${PROJECT_VERSION} REQUIRED)
0064 
0065 # Disables automatic conversions from QString (or char *) to QUrl.
0066 add_definitions(-DQT_NO_URL_CAST_FROM_STRING)
0067 
0068 find_package(X11)
0069 find_package(XCB COMPONENTS XCB)
0070 if(X11_FOUND AND XCB_XCB_FOUND)
0071   set(HAVE_X11 1)
0072   if (QT_MAJOR_VERSION EQUAL "5")
0073     find_package(Qt5X11Extras ${QT_MIN_VERSION} CONFIG)
0074   endif()
0075 endif()
0076 
0077 ecm_set_disabled_deprecation_versions(QT 5.15.2)
0078 
0079 include_directories(${CMAKE_CURRENT_BINARY_DIR})
0080 
0081 add_subdirectory(doc)
0082 kdoctools_install(po)
0083 
0084 function(install_compat_symlink executable_target)
0085     add_custom_command(TARGET ${executable_target} POST_BUILD
0086                     COMMAND ${CMAKE_COMMAND} -E create_symlink ${executable_target} ${executable_target}5)
0087     install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${executable_target}5 DESTINATION ${KDE_INSTALL_FULL_BINDIR})
0088 endfunction()
0089 
0090 add_subdirectory(kcmshell)
0091 add_subdirectory(keditfiletype)
0092 add_subdirectory(kmimetypefinder)
0093 if (QT_MAJOR_VERSION EQUAL "5")
0094     add_subdirectory(ktraderclient)
0095 endif()
0096 add_subdirectory(kioclient)
0097 add_subdirectory(ksvgtopng)
0098 add_subdirectory(kdeinhibit)
0099 add_subdirectory(plasma-open-settings)
0100 add_subdirectory(kinfo)
0101 
0102 if(Qt5X11Extras_FOUND)
0103     add_subdirectory(kstart)
0104 endif()
0105 
0106 
0107 if(KF5Su_FOUND)
0108     add_subdirectory(kdesu)
0109 endif()
0110 
0111 if(UNIX)
0112     add_subdirectory(kdeeject)
0113     add_subdirectory(kbroadcastnotification)
0114 endif()
0115 
0116 check_include_files(sys/wait.h HAVE_SYS_WAIT_H)
0117 
0118 check_include_file("sys/prctl.h" HAVE_SYS_PRCTL_H)
0119 check_symbol_exists(PR_SET_DUMPABLE "sys/prctl.h" HAVE_PR_SET_DUMPABLE)
0120 check_include_file("sys/procctl.h" HAVE_SYS_PROCCTL_H)
0121 check_symbol_exists(PROC_TRACE_CTL "sys/procctl.h" HAVE_PROC_TRACE_CTL)
0122 if (HAVE_PR_SET_DUMPABLE OR HAVE_PROC_TRACE_CTL)
0123   set(CAN_DISABLE_PTRACE TRUE)
0124 endif()
0125 add_feature_info("prctl-dumpable"
0126                  CAN_DISABLE_PTRACE
0127                 "Required for disallowing ptrace on kdesu process")
0128 
0129 configure_file (config-kde-cli-tools.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config-kde-cli-tools.h )
0130 
0131 # add clang-format target for all our real source files
0132 file(GLOB_RECURSE ALL_CLANG_FORMAT_SOURCE_FILES *.cpp *.h)
0133 kde_clang_format(${ALL_CLANG_FORMAT_SOURCE_FILES})
0134 
0135 kde_configure_git_pre_commit_hook(CHECKS CLANG_FORMAT)
0136 
0137 ki18n_install(po)
0138 
0139 feature_summary(WHAT ALL INCLUDE_QUIET_PACKAGES FATAL_ON_MISSING_REQUIRED_PACKAGES)