Warning, /plasma/kscreenlocker/cmake/UnixAuth.cmake is written in an unsupported language. File is not indexed.
0001 find_package(PAM)
0002
0003 include(CheckFunctionExists)
0004 include(CheckLibraryExists)
0005 include(CheckIncludeFiles)
0006 include(CMakePushCheckState)
0007
0008 set(UNIXAUTH_LIBRARIES)
0009 set(UNIXAUTH_INCLUDE_DIRS)
0010
0011 set(SHADOW_LIBRARIES)
0012 check_function_exists(getspnam found_getspnam)
0013 if (found_getspnam)
0014 set(HAVE_GETSPNAM 1)
0015 else (found_getspnam)
0016 cmake_push_check_state()
0017 set(CMAKE_REQUIRED_LIBRARIES -lshadow)
0018 check_function_exists(getspnam found_getspnam_shadow)
0019 if (found_getspnam_shadow)
0020 set(HAVE_GETSPNAM 1)
0021 set(SHADOW_LIBRARIES shadow)
0022 check_function_exists(pw_encrypt HAVE_PW_ENCRYPT) # ancient Linux shadow
0023 else (found_getspnam_shadow)
0024 set(CMAKE_REQUIRED_LIBRARIES -lgen) # UnixWare
0025 check_function_exists(getspnam found_getspnam_gen)
0026 if (found_getspnam_gen)
0027 set(HAVE_GETSPNAM 1)
0028 set(SHADOW_LIBRARIES gen)
0029 endif (found_getspnam_gen)
0030 endif (found_getspnam_shadow)
0031 cmake_pop_check_state()
0032 endif (found_getspnam)
0033
0034 set(CRYPT_LIBRARIES)
0035 check_library_exists(crypt crypt "" HAVE_CRYPT)
0036 if (HAVE_CRYPT)
0037 set(CRYPT_LIBRARIES crypt)
0038 check_include_files(crypt.h HAVE_CRYPT_H)
0039 endif (HAVE_CRYPT)
0040
0041 if (PAM_FOUND)
0042
0043 set(HAVE_PAM 1)
0044 set(UNIXAUTH_LIBRARIES ${PAM_LIBRARIES})
0045 set(UNIXAUTH_INCLUDE_DIRS ${PAM_INCLUDE_DIR})
0046
0047 else (PAM_FOUND)
0048
0049 if (HAVE_GETSPNAM)
0050 set(UNIXAUTH_LIBRARIES ${SHADOW_LIBRARIES})
0051 endif (HAVE_GETSPNAM)
0052 if (NOT HAVE_PW_ENCRYPT)
0053 set(UNIXAUTH_LIBRARIES ${UNIXAUTH_LIBRARIES} ${CRYPT_LIBRARIES})
0054 endif (NOT HAVE_PW_ENCRYPT)
0055
0056 endif (PAM_FOUND)