You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
55 lines
1.5 KiB
55 lines
1.5 KiB
find_package(PAM) |
|
|
|
include(CheckFunctionExists) |
|
include(CheckLibraryExists) |
|
include(CheckIncludeFiles) |
|
|
|
set(UNIXAUTH_LIBRARIES) |
|
set(UNIXAUTH_INCLUDE_DIRS) |
|
|
|
set(SHADOW_LIBRARIES) |
|
check_function_exists(getspnam found_getspnam) |
|
if (found_getspnam) |
|
set(HAVE_GETSPNAM 1) |
|
else (found_getspnam) |
|
macro_push_required_vars() |
|
set(CMAKE_REQUIRED_LIBRARIES -lshadow) |
|
check_function_exists(getspnam found_getspnam_shadow) |
|
if (found_getspnam_shadow) |
|
set(HAVE_GETSPNAM 1) |
|
set(SHADOW_LIBRARIES shadow) |
|
check_function_exists(pw_encrypt HAVE_PW_ENCRYPT) # ancient Linux shadow |
|
else (found_getspnam_shadow) |
|
set(CMAKE_REQUIRED_LIBRARIES -lgen) # UnixWare |
|
check_function_exists(getspnam found_getspnam_gen) |
|
if (found_getspnam_gen) |
|
set(HAVE_GETSPNAM 1) |
|
set(SHADOW_LIBRARIES gen) |
|
endif (found_getspnam_gen) |
|
endif (found_getspnam_shadow) |
|
macro_pop_required_vars() |
|
endif (found_getspnam) |
|
|
|
set(CRYPT_LIBRARIES) |
|
check_library_exists(crypt crypt "" HAVE_CRYPT) |
|
if (HAVE_CRYPT) |
|
set(CRYPT_LIBRARIES crypt) |
|
check_include_files(crypt.h HAVE_CRYPT_H) |
|
endif (HAVE_CRYPT) |
|
|
|
if (PAM_FOUND) |
|
|
|
set(HAVE_PAM 1) |
|
set(UNIXAUTH_LIBRARIES ${PAM_LIBRARIES}) |
|
set(UNIXAUTH_INCLUDE_DIRS ${PAM_INCLUDE_DIR}) |
|
|
|
else (PAM_FOUND) |
|
|
|
if (HAVE_GETSPNAM) |
|
set(UNIXAUTH_LIBRARIES ${SHADOW_LIBRARIES}) |
|
endif (HAVE_GETSPNAM) |
|
if (NOT HAVE_PW_ENCRYPT) |
|
set(UNIXAUTH_LIBRARIES ${UNIXAUTH_LIBRARIES} ${CRYPT_LIBRARIES}) |
|
endif (NOT HAVE_PW_ENCRYPT) |
|
|
|
endif (PAM_FOUND)
|
|
|