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 "6.0.80")
0005 
0006 set(QT_MIN_VERSION "6.6.0")
0007 set(KF6_MIN_VERSION "5.240.0")
0008 set(KDE_COMPILERSETTINGS_LEVEL "5.82")
0009 
0010 set(CMAKE_CXX_STANDARD 20)
0011 set(CMAKE_CXX_STANDARD_REQUIRED ON)
0012 
0013 find_package(ECM ${KF6_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(Qt6 ${QT_MIN_VERSION} CONFIG REQUIRED COMPONENTS
0032     Widgets
0033     Svg
0034     DBus
0035 )
0036 
0037 find_package(Qt6Test ${QT_MIN_VERSION} CONFIG QUIET)
0038 set_package_properties(Qt6Test PROPERTIES
0039          PURPOSE "Required for tests"
0040          TYPE OPTIONAL
0041          )
0042 add_feature_info("Qt6Test" Qt6Test_FOUND "Required for building tests")
0043 if (NOT Qt6Test_FOUND)
0044     set(BUILD_TESTING OFF CACHE BOOL "Build the testing tree.")
0045 endif()
0046 
0047 find_package(KF6 ${KF6_MIN_VERSION} REQUIRED COMPONENTS
0048     Config
0049     DocTools
0050     IconThemes
0051     I18n
0052     KCMUtils
0053     KIO
0054     Service
0055     WindowSystem
0056     Parts
0057     CoreAddons
0058     OPTIONAL_COMPONENTS
0059     Su
0060     QUIET
0061 )
0062 
0063 # Disables automatic conversions from QString (or char *) to QUrl.
0064 add_definitions(-DQT_NO_URL_CAST_FROM_STRING)
0065 
0066 option(WITH_X11 "Build kdesu and kstart with X11 support." ON)
0067 
0068 ecm_set_disabled_deprecation_versions(QT 5.15.2)
0069 
0070 include_directories(${CMAKE_CURRENT_BINARY_DIR})
0071 
0072 add_subdirectory(doc)
0073 kdoctools_install(po)
0074 
0075 function(install_compat_symlink executable_target)
0076     add_custom_command(TARGET ${executable_target} POST_BUILD
0077                     COMMAND ${CMAKE_COMMAND} -E create_symlink ${executable_target} ${executable_target}5)
0078     install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${executable_target}5 DESTINATION ${KDE_INSTALL_FULL_BINDIR})
0079 endfunction()
0080 
0081 add_subdirectory(keditfiletype)
0082 add_subdirectory(kmimetypefinder)
0083 add_subdirectory(kioclient)
0084 add_subdirectory(ksvgtopng)
0085 add_subdirectory(kdeinhibit)
0086 add_subdirectory(plasma-open-settings)
0087 add_subdirectory(kinfo)
0088 add_subdirectory(kstart)
0089 
0090 if(KF6Su_FOUND)
0091     add_subdirectory(kdesu)
0092 endif()
0093 
0094 if(UNIX)
0095     add_subdirectory(kdeeject)
0096     add_subdirectory(kbroadcastnotification)
0097 endif()
0098 
0099 check_include_files(sys/wait.h HAVE_SYS_WAIT_H)
0100 
0101 check_include_file("sys/prctl.h" HAVE_SYS_PRCTL_H)
0102 check_symbol_exists(PR_SET_DUMPABLE "sys/prctl.h" HAVE_PR_SET_DUMPABLE)
0103 check_include_file("sys/procctl.h" HAVE_SYS_PROCCTL_H)
0104 check_symbol_exists(PROC_TRACE_CTL "sys/procctl.h" HAVE_PROC_TRACE_CTL)
0105 if (HAVE_PR_SET_DUMPABLE OR HAVE_PROC_TRACE_CTL)
0106   set(CAN_DISABLE_PTRACE TRUE)
0107 endif()
0108 add_feature_info("prctl-dumpable"
0109                  CAN_DISABLE_PTRACE
0110                 "Required for disallowing ptrace on kdesu process")
0111 
0112 configure_file (config-kde-cli-tools.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config-kde-cli-tools.h )
0113 
0114 # add clang-format target for all our real source files
0115 file(GLOB_RECURSE ALL_CLANG_FORMAT_SOURCE_FILES *.cpp *.h)
0116 kde_clang_format(${ALL_CLANG_FORMAT_SOURCE_FILES})
0117 
0118 kde_configure_git_pre_commit_hook(CHECKS CLANG_FORMAT)
0119 
0120 ki18n_install(po)
0121 
0122 feature_summary(WHAT ALL INCLUDE_QUIET_PACKAGES FATAL_ON_MISSING_REQUIRED_PACKAGES)