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