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)