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 )