Warning, /plasma/kwallet-pam/CMakeLists.txt is written in an unsupported language. File is not indexed.
0001 project(pam_kwallet) 0002 cmake_minimum_required(VERSION 3.16) 0003 set(KF5_MIN_VERSION "5.102.0") 0004 set(KDE_COMPILERSETTINGS_LEVEL "5.82") 0005 set(PROJECT_VERSION "5.27.10") 0006 set(PROJECT_VERSION_MAJOR 5) 0007 0008 find_package (ECM ${KF5_MIN_VERSION} REQUIRED NO_MODULE) 0009 set (CMAKE_MODULE_PATH ${ECM_MODULE_PATH} "${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules" ) 0010 0011 include(CheckFunctionExists) 0012 include(KDEInstallDirs) 0013 include(KDEClangFormat) 0014 include(ECMConfiguredInstall) 0015 0016 find_package(PAM REQUIRED) 0017 find_package(LibGcrypt 1.5.0 REQUIRED) 0018 0019 find_program(SOCAT_EXECUTABLE socat) 0020 0021 if (SOCAT_EXECUTABLE) 0022 message (STATUS "Found socat executable: ${SOCAT_EXECUTABLE}") 0023 else () 0024 message (WARNING "socat is required for pam_kwallet to work") 0025 endif () 0026 0027 include_directories ( 0028 ${PAM_INCLUDE_DIR} 0029 ${CMAKE_BINARY_DIR} 0030 ${CMAKE_CURRENT_BINARY_DIR} 0031 ${LIBGCRYPT_INCLUDE_DIR} 0032 ) 0033 0034 add_definitions(-DQT_DISABLE_DEPRECATED_BEFORE=0x050c00) 0035 add_definitions(-DKF_DISABLE_DEPRECATED_BEFORE_AND_AT=0x054200) 0036 0037 set(library_name "pam_kwallet5") 0038 0039 set(pam_kwallet_SRCS 0040 pam_kwallet.c 0041 ) 0042 0043 find_package(KF5 ${KF5_MIN_VERSION} REQUIRED COMPONENTS 0044 Wallet 0045 ) 0046 0047 add_definitions(-DKWALLETD_BIN_PATH="${KWALLETD_BIN_PATH}") 0048 0049 if (APPLE) 0050 LIST(APPEND pam_kwallet_SRCS 0051 pam_darwin.c 0052 ) 0053 endif() 0054 0055 # Handle different PAM header styles: 0056 # - "Linux style" has pam_ext.h 0057 # - "BSD style" has pam_appl.h 0058 # 0059 find_file(PAM_EXT_PATH security/pam_ext.h) 0060 find_file(PAM_APPL_PATH security/pam_appl.h) 0061 if (PAM_EXT_PATH) 0062 add_definitions(-DHAVE_PAM_EXT) 0063 endif() 0064 if (PAM_APPL_PATH) 0065 add_definitions(-DHAVE_PAM_APPL) 0066 endif() 0067 0068 set(CMAKE_REQUIRED_INCLUDES "string.h") 0069 check_function_exists(explicit_bzero HAVE_EXPLICIT_BZERO) 0070 set(CMAKE_REQUIRED_INCLUDES) 0071 0072 if (HAVE_EXPLICIT_BZERO) 0073 add_definitions(-DHAVE_EXPLICIT_BZERO) 0074 endif() 0075 0076 add_library (${library_name} SHARED ${pam_kwallet_SRCS}) 0077 set_target_properties (${library_name} PROPERTIES PREFIX "") 0078 target_link_libraries (${library_name} 0079 ${PAM_LIBRARIES} 0080 ${LIBGCRYPT_LIBRARIES} 0081 ) 0082 0083 # add clang-format target for all our real source files 0084 file(GLOB_RECURSE ALL_CLANG_FORMAT_SOURCE_FILES *.cpp *.h) 0085 kde_clang_format(${ALL_CLANG_FORMAT_SOURCE_FILES}) 0086 0087 install(TARGETS ${library_name} DESTINATION ${KDE_INSTALL_LIBDIR}/security) 0088 0089 configure_file(pam_kwallet_init.desktop.cmake ${CMAKE_BINARY_DIR}/pam_kwallet_init.desktop) 0090 0091 install(PROGRAMS pam_kwallet_init DESTINATION ${KDE_INSTALL_LIBEXECDIR}) 0092 0093 install(FILES ${CMAKE_BINARY_DIR}/pam_kwallet_init.desktop DESTINATION ${KDE_INSTALL_AUTOSTARTDIR}) 0094 0095 ecm_install_configured_files(INPUT plasma-kwallet-pam.service.in @ONLY DESTINATION 0096 ${KDE_INSTALL_SYSTEMDUSERUNITDIR})