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)