add_library(libbongosieve sieve.c store.c managesieve.c)
set_target_properties(libbongosieve PROPERTIES OUTPUT_NAME bongosieve)
target_compile_definitions(libbongosieve PRIVATE
    BONGO_SIEVE_VALIDATE_PATH="${LIBEXEC_INSTALL_DIR}/bongo/bongo-sieve-validate")
target_link_libraries(libbongosieve PRIVATE Mailutils::Sieve SQLite3::SQLite3)

install(TARGETS libbongosieve DESTINATION ${LIB_INSTALL_DIR})

add_executable(bongo-sieve-validate tests/validate-helper.c)
target_link_libraries(bongo-sieve-validate PRIVATE libbongosieve)
install(TARGETS bongo-sieve-validate DESTINATION ${LIBEXEC_INSTALL_DIR}/bongo)

if(BUILD_TESTING)
	add_executable(bongo-sieve-test tests/sieve-test.c)
	target_link_libraries(bongo-sieve-test PRIVATE libbongosieve)
	add_test(NAME sieve-validation COMMAND bongo-sieve-test)

	add_executable(bongo-sieve-store-test tests/store-protocol-test.c
	               tests/store-test.c tests/managesieve-test.c)
	target_link_libraries(bongo-sieve-store-test PRIVATE libbongosieve)
	add_test(NAME sieve-store-protocol COMMAND bongo-sieve-store-test)

	set_tests_properties(sieve-validation PROPERTIES
		ENVIRONMENT "BONGO_SIEVE_VALIDATE_PATH=$<TARGET_FILE:bongo-sieve-validate>")
	set_tests_properties(sieve-store-protocol PROPERTIES
		ENVIRONMENT "BONGO_SIEVE_VALIDATE_PATH=$<TARGET_FILE:bongo-sieve-validate>")
endif()
