Warning, /frameworks/kdesu/src/CMakeLists.txt is written in an unsupported language. File is not indexed.
0001 add_subdirectory(kdesud)
0002
0003 include(CheckTypeSize)
0004 include(CheckIncludeFiles)
0005 include(CheckFunctionExists)
0006
0007 check_function_exists(setpriority HAVE_SETPRIORITY)
0008 check_function_exists(getpeereid HAVE_GETPEEREID)
0009 check_function_exists(initgroups HAVE_INITGROUPS)
0010
0011 check_include_files(sys/select.h HAVE_SYS_SELECT_H)
0012
0013 set(CMAKE_EXTRA_INCLUDE_FILES sys/socket.h)
0014 check_type_size("struct ucred" STRUCT_UCRED) #defines HAVE_STRUCT_UCRED (bool) and STRUCT_UCRED (size, unused)
0015 set(CMAKE_EXTRA_INCLUDE_FILES) #reset CMAKE_EXTRA_INCLUDE_FILES
0016
0017 configure_file(config-kdesu.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config-kdesu.h)
0018
0019 add_library(KF6Su)
0020 add_library(KF6::Su ALIAS KF6Su)
0021
0022 set_target_properties(KF6Su PROPERTIES
0023 VERSION ${KDESU_VERSION}
0024 SOVERSION ${KDESU_SOVERSION}
0025 EXPORT_NAME Su
0026 )
0027
0028 target_sources(KF6Su PRIVATE
0029 client.cpp
0030 ptyprocess.cpp
0031 kcookie.cpp
0032 suprocess.cpp
0033 sshprocess.cpp
0034 stubprocess.cpp
0035 )
0036
0037 ecm_qt_declare_logging_category(KF6Su
0038 HEADER ksu_debug.h
0039 IDENTIFIER KSU_LOG
0040 CATEGORY_NAME kf.su
0041 DESCRIPTION "KSu (KDESu)"
0042 EXPORT KSU
0043 )
0044
0045 ecm_generate_export_header(KF6Su
0046 EXPORT_FILE_NAME kdesu/kdesu_export.h
0047 BASE_NAME KDESu
0048 GROUP_BASE_NAME KF
0049 VERSION ${KF_VERSION}
0050 USE_VERSION_HEADER
0051 DEPRECATED_BASE_VERSION 0
0052 DEPRECATION_VERSIONS
0053 EXCLUDE_DEPRECATED_BEFORE_AND_AT ${EXCLUDE_DEPRECATED_BEFORE_AND_AT}
0054 )
0055
0056 if(KDESU_USE_SUDO_DEFAULT)
0057 target_compile_definitions(KF6Su PRIVATE -DKDESU_USE_SUDO_DEFAULT="true")
0058 elseif(KDESU_USE_DOAS_DEFAULT)
0059 target_compile_definitions(KF6Su PRIVATE -DKDESU_USE_DOAS_DEFAULT="true")
0060 endif()
0061
0062 target_include_directories(KF6Su PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/..)
0063
0064 # Apps must include <KDESu/File> or <kdesu/file.h>
0065 target_include_directories(KF6Su INTERFACE "$<INSTALL_INTERFACE:${KDE_INSTALL_INCLUDEDIR_KF}/KDESu>")
0066
0067 target_link_libraries(KF6Su
0068 PUBLIC
0069 KF6::Pty
0070 PRIVATE
0071 KF6::CoreAddons # KUser::loginName
0072 KF6::ConfigCore # KConfigGroup
0073 )
0074
0075
0076 ecm_generate_headers(KDESu_CamelCase_HEADERS
0077 HEADER_NAMES
0078 PtyProcess
0079 SuProcess
0080 SshProcess
0081 StubProcess
0082 Client
0083
0084 PREFIX KDESu
0085 REQUIRED_HEADERS KDESu_HEADERS
0086 )
0087 install(FILES ${KDESu_CamelCase_HEADERS} DESTINATION ${KDE_INSTALL_INCLUDEDIR_KF}/KDESu/KDESu COMPONENT Devel)
0088
0089 install(TARGETS KF6Su EXPORT KF6SuTargets ${KF_INSTALL_TARGETS_DEFAULT_ARGS})
0090
0091 ########### next target ###############
0092
0093 include(ECMMarkNonGuiExecutable)
0094
0095 set_source_files_properties(kdesu_stub.c PROPERTIES
0096 COMPILE_DEFINITIONS "_XOPEN_SOURCE;_BSD_SOURCE")
0097 add_executable(kdesu_stub kdesu_stub.c)
0098 ecm_mark_nongui_executable(kdesu_stub)
0099
0100 install(TARGETS kdesu_stub DESTINATION ${KDE_INSTALL_LIBEXECDIR_KF})
0101
0102 ########### install files ###############
0103 install(FILES
0104 defaults.h
0105 ${CMAKE_CURRENT_BINARY_DIR}/kdesu/kdesu_export.h
0106 ${KDESu_HEADERS}
0107 DESTINATION ${KDE_INSTALL_INCLUDEDIR_KF}/KDESu/kdesu COMPONENT Devel
0108 )
0109
0110 if(BUILD_QCH)
0111 ecm_add_qch(
0112 KF6Su_QCH
0113 NAME KDESu
0114 BASE_NAME KF6Su
0115 VERSION ${KF_VERSION}
0116 ORG_DOMAIN org.kde
0117 SOURCES # using only public headers, to cover only public API
0118 ${KDESu_HEADERS}
0119 MD_MAINPAGE "${CMAKE_SOURCE_DIR}/README.md"
0120 LINK_QCHS
0121 KF6Pty_QCH
0122 INCLUDE_DIRS
0123 ${CMAKE_CURRENT_BINARY_DIR}
0124 BLANK_MACROS
0125 KDESU_EXPORT
0126 KDESU_DEPRECATED
0127 KDESU_DEPRECATED_EXPORT
0128 "KDESU_DEPRECATED_VERSION(x, y, t)"
0129 TAGFILE_INSTALL_DESTINATION ${KDE_INSTALL_QTQCHDIR}
0130 QCH_INSTALL_DESTINATION ${KDE_INSTALL_QTQCHDIR}
0131 COMPONENT Devel
0132 )
0133 endif()
0134
0135 ecm_qt_install_logging_categories(
0136 EXPORT KSU
0137 FILE ksu.categories
0138 DESTINATION "${KDE_INSTALL_LOGGINGCATEGORIESDIR}"
0139 )