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 )