cmake_minimum_required(VERSION 3.13)

add_executable(
	cado cado.c pam_check.c get_user_groups.c capset_from_namelist.c
	read_conf.c set_ambient_cap.c compute_digest.c file_utils.c
	scado_parse.c cado_scado_check.c
)
target_include_directories(cado PRIVATE ${PROJECT_SOURCE_DIR}/include ${CMAKE_BINARY_DIR}/include)
target_link_libraries(
	cado ${pam_library} ${pam_misc_library} ${cap_library} ${mhash_library}
	${execs_library})

add_executable(cadrop cadrop.c capset_from_namelist.c set_ambient_cap.c)
target_include_directories(cadrop PRIVATE ${PROJECT_SOURCE_DIR}/include ${CMAKE_BINARY_DIR}/include)
target_link_libraries(cadrop ${cap_library})

add_executable(
	scado scado.c pam_check.c file_utils.c compute_digest.c
	capset_from_namelist.c scado_parse.c
)
target_include_directories(scado PRIVATE ${PROJECT_SOURCE_DIR}/include ${CMAKE_BINARY_DIR}/include)
target_link_libraries(
	scado ${pam_library} ${pam_misc_library} ${cap_library} ${mhash_library}
	${execs_library}
)

add_executable(caprint caprint.c)
target_include_directories(caprint PRIVATE ${PROJECT_SOURCE_DIR}/include ${CMAKE_BINARY_DIR}/include)
target_link_libraries(caprint ${cap_library})

install(
	TARGETS cado cadrop scado caprint
	RUNTIME
	DESTINATION ${CMAKE_INSTALL_BINDIR}
)

if(CADO_RUN_POST_INSTALL)
	install(
		CODE "execute_process(
			COMMAND ${CMAKE_COMMAND}
			-DBINDIR=${CMAKE_INSTALL_FULL_BINDIR}
			-DLIBDIR=${CMAKE_INSTALL_FULL_LIBDIR}
			-DCADO_SPOOL_DIR=${CADO_SPOOL_DIR}
			-P ${PROJECT_SOURCE_DIR}/PostInstall.cmake
		)"
	)
endif()
