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)