StrictCompile()

add_executable(bongoworker
    worker.c
    worker-config.c
    jobs/registry.c
    jobs/acme-renew.c
    jobs/scanner-health.c
    jobs/scanner-health-support.c
)

target_include_directories(bongoworker PRIVATE
    ${CMAKE_CURRENT_SOURCE_DIR}
    ${CMAKE_CURRENT_SOURCE_DIR}/jobs
)
target_compile_definitions(bongoworker PRIVATE
    BONGO_SA_UPDATE_PATH="${LIBEXEC_INSTALL_DIR}/bongo/bongo-sa-update")

target_link_libraries(bongoworker
    bongoacme
    bongoscheduler
    bongojson
    bongoxpl
    bongoutil
    bongomsgapi
    bongoconnio
    bongocal
    SQLite3::SQLite3
    Threads::Threads
)
if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
    target_link_options(bongoworker PRIVATE "LINKER:--no-as-needed")
endif()

install(TARGETS bongoworker DESTINATION ${SBIN_INSTALL_DIR})

if(BUILD_TESTING)
    add_executable(worker-config-test
        tests/worker-config-test.c
        worker-config.c
        jobs/registry.c
        jobs/acme-renew.c
        jobs/scanner-health.c
        jobs/scanner-health-support.c
    )
    target_include_directories(worker-config-test PRIVATE
        ${CMAKE_CURRENT_SOURCE_DIR}
        ${CMAKE_CURRENT_SOURCE_DIR}/jobs
    )
    target_compile_definitions(worker-config-test PRIVATE
        BONGO_SA_UPDATE_PATH="${LIBEXEC_INSTALL_DIR}/bongo/bongo-sa-update")
    target_link_libraries(worker-config-test PRIVATE
        bongoacme
        bongoxpl
        bongoconnio
        bongoutil
        bongojson
        bongomsgapi
        bongocal
        SQLite3::SQLite3
        GnuTLS::GnuTLS
        Threads::Threads
    )
    if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
        target_link_options(worker-config-test PRIVATE "LINKER:--no-as-needed")
    endif()
    add_test(NAME worker-config COMMAND worker-config-test)

    add_executable(worker-scanner-health-test
        tests/scanner-health-test.c
        jobs/scanner-health-support.c
    )
    target_include_directories(worker-scanner-health-test PRIVATE
        ${CMAKE_CURRENT_SOURCE_DIR}/jobs
    )
    target_link_libraries(worker-scanner-health-test PRIVATE
        SQLite3::SQLite3
    )
    add_test(NAME worker-scanner-health COMMAND worker-scanner-health-test)
endif()
