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(KF5Su) 0020 add_library(KF5::Su ALIAS KF5Su) 0021 0022 set_target_properties(KF5Su PROPERTIES 0023 VERSION ${KDESU_VERSION} 0024 SOVERSION ${KDESU_SOVERSION} 0025 EXPORT_NAME Su 0026 ) 0027 0028 target_sources(KF5Su 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(KF5Su 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(KF5Su 0046 EXPORT_FILE_NAME kdesu/kdesu_export.h 0047 BASE_NAME KDESu 0048 GROUP_BASE_NAME KF 0049 VERSION ${KF_VERSION} 0050 DEPRECATED_BASE_VERSION 0 0051 DEPRECATION_VERSIONS 5.0 5.99 0052 EXCLUDE_DEPRECATED_BEFORE_AND_AT ${EXCLUDE_DEPRECATED_BEFORE_AND_AT} 0053 ) 0054 0055 if(KDESU_USE_SUDO_DEFAULT) 0056 target_compile_definitions(KF5Su PRIVATE -DKDESU_USE_SUDO_DEFAULT="true") 0057 elseif(KDESU_USE_DOAS_DEFAULT) 0058 target_compile_definitions(KF5Su PRIVATE -DKDESU_USE_DOAS_DEFAULT="true") 0059 endif() 0060 0061 target_include_directories(KF5Su PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/..) 0062 0063 # Apps must include <KDESu/File> or <kdesu/file.h> 0064 target_include_directories(KF5Su INTERFACE "$<INSTALL_INTERFACE:${KDE_INSTALL_INCLUDEDIR_KF}/KDESu>") 0065 0066 target_link_libraries(KF5Su 0067 PUBLIC 0068 KF5::Pty 0069 PRIVATE 0070 KF5::CoreAddons # KUser::loginName 0071 KF5::ConfigCore # KConfigGroup 0072 ) 0073 0074 0075 ecm_generate_headers(KDESu_CamelCase_HEADERS 0076 HEADER_NAMES 0077 PtyProcess 0078 SuProcess 0079 SshProcess 0080 StubProcess 0081 Client # technically the class is called KDEsuClient... 0082 0083 PREFIX KDESu 0084 REQUIRED_HEADERS KDESu_HEADERS 0085 ) 0086 install(FILES ${KDESu_CamelCase_HEADERS} DESTINATION ${KDE_INSTALL_INCLUDEDIR_KF}/KDESu/KDESu COMPONENT Devel) 0087 0088 install(TARGETS KF5Su EXPORT KF5SuTargets ${KF_INSTALL_TARGETS_DEFAULT_ARGS}) 0089 0090 ########### next target ############### 0091 0092 include(ECMMarkNonGuiExecutable) 0093 0094 set_source_files_properties(kdesu_stub.c PROPERTIES 0095 COMPILE_DEFINITIONS "_XOPEN_SOURCE;_BSD_SOURCE") 0096 add_executable(kdesu_stub kdesu_stub.c) 0097 ecm_mark_nongui_executable(kdesu_stub) 0098 0099 install(TARGETS kdesu_stub DESTINATION ${KDE_INSTALL_LIBEXECDIR_KF}) 0100 0101 ########### install files ############### 0102 install(FILES 0103 compatheaders/su.h 0104 compatheaders/ssh.h 0105 compatheaders/stub.h 0106 compatheaders/process.h 0107 defaults.h 0108 ${CMAKE_CURRENT_BINARY_DIR}/kdesu/kdesu_export.h 0109 ${KDESu_HEADERS} 0110 DESTINATION ${KDE_INSTALL_INCLUDEDIR_KF}/KDESu/kdesu COMPONENT Devel 0111 ) 0112 0113 if(BUILD_QCH) 0114 ecm_add_qch( 0115 KF5Su_QCH 0116 NAME KDESu 0117 BASE_NAME KF5Su 0118 VERSION ${KF_VERSION} 0119 ORG_DOMAIN org.kde 0120 SOURCES # using only public headers, to cover only public API 0121 ${KDESu_HEADERS} 0122 MD_MAINPAGE "${CMAKE_SOURCE_DIR}/README.md" 0123 LINK_QCHS 0124 KF5Pty_QCH 0125 INCLUDE_DIRS 0126 ${CMAKE_CURRENT_BINARY_DIR} 0127 BLANK_MACROS 0128 KDESU_EXPORT 0129 KDESU_DEPRECATED 0130 KDESU_DEPRECATED_EXPORT 0131 "KDESU_DEPRECATED_VERSION(x, y, t)" 0132 TAGFILE_INSTALL_DESTINATION ${KDE_INSTALL_QTQCHDIR} 0133 QCH_INSTALL_DESTINATION ${KDE_INSTALL_QTQCHDIR} 0134 COMPONENT Devel 0135 ) 0136 endif() 0137 0138 include(ECMGeneratePriFile) 0139 ecm_generate_pri_file(BASE_NAME KDESu LIB_NAME KF5Su DEPS "KPty" FILENAME_VAR PRI_FILENAME INCLUDE_INSTALL_DIR ${KDE_INSTALL_INCLUDEDIR_KF}/KDESu) 0140 install(FILES ${PRI_FILENAME} DESTINATION ${ECM_MKSPECS_INSTALL_DIR}) 0141 0142 ecm_qt_install_logging_categories( 0143 EXPORT KSU 0144 FILE ksu.categories 0145 DESTINATION "${KDE_INSTALL_LOGGINGCATEGORIESDIR}" 0146 )