Warning, /plasma/kwrited/CMakeLists.txt is written in an unsupported language. File is not indexed.
0001 cmake_minimum_required(VERSION 3.16) 0002 0003 project(kwrited) 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(CMakeDependentOption) 0017 include(KDEInstallDirs) 0018 include(KDECMakeSettings) 0019 include(KDECompilerSettings NO_POLICY_SCOPE) 0020 include(FeatureSummary) 0021 include(KDEClangFormat) 0022 include(KDEGitCommitHooks) 0023 include(ECMDeprecationSettings) 0024 0025 find_package(Qt6 ${QT_MIN_VERSION} CONFIG REQUIRED COMPONENTS 0026 Gui 0027 ) 0028 0029 find_package(KF6 ${KF6_MIN_VERSION} REQUIRED COMPONENTS 0030 CoreAddons 0031 I18n 0032 Pty 0033 Notifications 0034 ) 0035 0036 cmake_dependent_option(BUILD_AS_EXECUTABLE "Whether to build kwrited as executable" OFF 0037 "KPty_HAVE_UTEMPTER" ON) 0038 0039 if (NOT BUILD_AS_EXECUTABLE) 0040 find_package(KF6DBusAddons ${KF6_MIN_VERSION}) 0041 set_package_properties(KF6DBusAddons PROPERTIES DESCRIPTION "Convenience classes for DBus" 0042 TYPE REQUIRED 0043 PURPOSE "Needed to build kwrited's KDED module" 0044 ) 0045 endif () 0046 0047 add_definitions(-DQT_NO_NARROWING_CONVERSIONS_IN_CONNECT) 0048 add_definitions(-DQT_NO_URL_CAST_FROM_STRING) 0049 0050 ecm_set_disabled_deprecation_versions(QT 6.4.0 0051 KF 5.101 0052 ) 0053 0054 # If libutempter is not available on the system, we build 0055 # kwrited as an executable that is installed with setuid root 0056 # (or setgid utmp) in order to be able to login successfully 0057 # (and thus be useful, as kwrited does not work at all if it 0058 # cannot login to the terminal device that it opens). 0059 0060 configure_file(config-kwrited.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config-kwrited.h) 0061 0062 if (BUILD_AS_EXECUTABLE) 0063 add_executable(kwrited kwrited.cpp) 0064 target_compile_definitions(kwrited PRIVATE -DPROJECT_VERSION="${PROJECT_VERSION}") 0065 target_link_libraries(kwrited Qt::Gui KF6::CoreAddons KF6::I18n KF6::Notifications KF6::Pty) 0066 install(TARGETS kwrited ${KDE_INSTALL_TARGETS_DEFAULT_ARGS} ) 0067 if(IS_ABSOLUTE BIN_INSTALL_DIR) 0068 set(ABS_BIN_INSTALL_DIR "${KDE_INSTALL_BINDIR}") 0069 else() 0070 set(ABS_BIN_INSTALL_DIR "\${CMAKE_INSTALL_PREFIX}/${KDE_INSTALL_BINDIR}") 0071 endif() 0072 install(CODE " 0073 set(KWRITED_PATH \"\$ENV{DESTDIR}${ABS_BIN_INSTALL_DIR}/kwrited\") 0074 0075 # On Debian we setgid instead of setuid. 0076 # Feel free to add checks here for other distros as well, if needed. 0077 if (EXISTS /etc/debian_version) 0078 set(SETGID 1) 0079 set(SETGID_GROUP utmp) 0080 endif () 0081 0082 if (SETGID) 0083 execute_process(COMMAND sh -c \"chgrp \${SETGID_GROUP} '\${KWRITED_PATH}' && chmod g+s '\${KWRITED_PATH}'\") 0084 else () 0085 execute_process(COMMAND sh -c \"chown root '\${KWRITED_PATH}' && chmod u+s '\${KWRITED_PATH}'\") 0086 endif() 0087 ") 0088 0089 install(FILES kwrited-autostart.desktop DESTINATION ${KDE_INSTALL_AUTOSTARTDIR}) 0090 else () 0091 kcoreaddons_add_plugin(kded_kwrited 0092 SOURCES kwrited.cpp 0093 INSTALL_NAMESPACE "kf6/kded" 0094 ) 0095 set_target_properties(kded_kwrited PROPERTIES OUTPUT_NAME kwrited) 0096 target_compile_definitions(kded_kwrited PRIVATE -DPROJECT_VERSION="${PROJECT_VERSION}") 0097 target_link_libraries(kded_kwrited KF6::CoreAddons KF6::DBusAddons KF6::I18n KF6::Notifications KF6::Pty) 0098 endif () 0099 0100 # The .notifyrc file is common 0101 install(FILES kwrited.notifyrc DESTINATION ${KDE_INSTALL_KNOTIFYRCDIR}) 0102 0103 # add clang-format target for all our real source files 0104 file(GLOB_RECURSE ALL_CLANG_FORMAT_SOURCE_FILES *.cpp *.h) 0105 kde_clang_format(${ALL_CLANG_FORMAT_SOURCE_FILES}) 0106 kde_configure_git_pre_commit_hook(CHECKS CLANG_FORMAT) 0107 0108 feature_summary(WHAT ALL INCLUDE_QUIET_PACKAGES FATAL_ON_MISSING_REQUIRED_PACKAGES)