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