1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93
|
project(pam_kwallet)
cmake_minimum_required(VERSION 2.8.12)
set(KF5_MIN_VERSION "5.74")
set(PROJECT_VERSION "5.20.5")
set(PROJECT_VERSION_MAJOR 5)
find_package (ECM ${KF5_MIN_VERSION} REQUIRED NO_MODULE)
set (CMAKE_MODULE_PATH ${ECM_MODULE_PATH} "${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules" )
include(CheckFunctionExists)
include(KDEInstallDirs)
include(KDEClangFormat)
find_package(PAM REQUIRED)
find_package(LibGcrypt 1.5.0 REQUIRED)
find_program(SOCAT_EXECUTABLE socat)
if (SOCAT_EXECUTABLE)
message (STATUS "Found socat executable: ${SOCAT_EXECUTABLE}")
else ()
message (WARNING "socat is required for pam_kwallet to work")
endif ()
include_directories (
${PAM_INCLUDE_DIR}
${CMAKE_BINARY_DIR}
${CMAKE_CURRENT_BINARY_DIR}
${LIBGCRYPT_INCLUDE_DIR}
)
if (EXISTS "${CMAKE_SOURCE_DIR}/.git")
add_definitions(-DQT_DISABLE_DEPRECATED_BEFORE=0x060000)
add_definitions(-DKF_DISABLE_DEPRECATED_BEFORE_AND_AT=0x054200)
endif()
set(library_name "pam_kwallet5")
set(pam_kwallet_SRCS
pam_kwallet.c
)
set(KF5_MIN_VERSION "5.74")
find_package(KF5 ${KF5_MIN_VERSION} REQUIRED COMPONENTS
Wallet
)
add_definitions(-DKWALLETD_BIN_PATH="${KWALLETD_BIN_PATH}")
if (APPLE)
LIST(APPEND pam_kwallet_SRCS
pam_darwin.c
)
endif()
# Handle different PAM header styles:
# - "Linux style" has pam_ext.h
# - "BSD style" has pam_appl.h
#
find_file(PAM_EXT_PATH security/pam_ext.h)
find_file(PAM_APPL_PATH security/pam_appl.h)
if (PAM_EXT_PATH)
add_definitions(-DHAVE_PAM_EXT)
endif()
if (PAM_APPL_PATH)
add_definitions(-DHAVE_PAM_APPL)
endif()
set(CMAKE_REQUIRED_INCLUDES "string.h")
check_function_exists(explicit_bzero HAVE_EXPLICIT_BZERO)
set(CMAKE_REQUIRED_INCLUDES)
if (HAVE_EXPLICIT_BZERO)
add_definitions(-DHAVE_EXPLICIT_BZERO)
endif()
add_library (${library_name} SHARED ${pam_kwallet_SRCS})
set_target_properties (${library_name} PROPERTIES PREFIX "")
target_link_libraries (${library_name}
${PAM_LIBRARIES}
${LIBGCRYPT_LIBRARIES}
)
# add clang-format target for all our real source files
file(GLOB_RECURSE ALL_CLANG_FORMAT_SOURCE_FILES *.cpp *.h)
kde_clang_format(${ALL_CLANG_FORMAT_SOURCE_FILES})
install(TARGETS ${library_name} DESTINATION ${CMAKE_INSTALL_LIBDIR}/security)
configure_file(pam_kwallet_init.desktop.cmake ${CMAKE_BINARY_DIR}/pam_kwallet_init.desktop)
install(PROGRAMS pam_kwallet_init DESTINATION ${LIBEXEC_INSTALL_DIR})
install(FILES ${CMAKE_BINARY_DIR}/pam_kwallet_init.desktop DESTINATION ${AUTOSTART_INSTALL_DIR})
|