include (SafeCheckSymbolExists)
include (LibAddMacros)

set (plugin passwd)

if (DEPENDENCY_PHASE)
	add_definitions (-D_GNU_SOURCE -D_DARWIN_C_SOURCE)
	safe_check_symbol_exists (fgetpwent "stdio.h;sys/types.h;pwd.h" TEST_FGETPWENT)
	safe_check_symbol_exists (getline "stdio.h" TEST_GETLINE)
	safe_check_symbol_exists (putpwent "stdio.h;sys/types.h;pwd.h" TEST_PUTPWENT)

	if (TEST_FGETPWENT)
		add_definitions (-DUSE_FGETPWENT)
	elseif (TEST_GETLINE)
		add_definitions (-DUSE_FGETPWENT_LOCAL)
	else ()
		remove_plugin (${plugin} "could not find fgetpwent nor getline.")
	endif ()

	# no need to remove the plugin as our fallbacks have no deps
	if (TEST_PUTPWENT)
		add_definitions (-DUSE_PUTPWENT)
	endif (TEST_PUTPWENT)
endif ()

add_plugin (
	passwd
	SOURCES passwd.h passwd.c
	COMPILE_DEFINITIONS ${PASSWD_COMPILE_DEFS}
	ADD_TEST INSTALL_TEST_DATA)
