set(EXTERNAL_ACCOUNTS_SQL_C ${CMAKE_CURRENT_BINARY_DIR}/external-accounts-sql.c)
add_custom_command(
    OUTPUT ${EXTERNAL_ACCOUNTS_SQL_C}
    COMMAND ${CMAKE_COMMAND}
            -DINPUT=${CMAKE_SOURCE_DIR}/src/agents/collector/external-accounts.sql
            -DOUTPUT=${EXTERNAL_ACCOUNTS_SQL_C}
            -DSYMBOL=sql_external_accounts
            -P ${CMAKE_SOURCE_DIR}/cmake/EmbedFile.cmake
    DEPENDS ${CMAKE_SOURCE_DIR}/src/agents/collector/external-accounts.sql
            ${CMAKE_SOURCE_DIR}/cmake/EmbedFile.cmake
    VERBATIM
)

add_library(bongocollectoraccounts SHARED
    ${CMAKE_SOURCE_DIR}/src/agents/collector/external_accounts.c
    ${EXTERNAL_ACCOUNTS_SQL_C}
)

target_include_directories(bongocollectoraccounts PUBLIC
    ${CMAKE_SOURCE_DIR}/src/agents/collector
)

target_link_libraries(bongocollectoraccounts
    bongoxpl
    LibGcrypt::LibGcrypt
    SQLite3::SQLite3
)

install(TARGETS bongocollectoraccounts DESTINATION ${LIB_INSTALL_DIR})

if(BUILD_TESTING)
    add_executable(collector-accounts-test
        tests/external-accounts-test.c
    )
    target_link_libraries(collector-accounts-test
        bongocollectoraccounts
        SQLite3::SQLite3
    )
    add_test(NAME collector-external-accounts COMMAND collector-accounts-test)
endif()
