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})