configure_file(bongo-web.py.in bongo-web @ONLY)

find_program(MSGFMT_EXECUTABLE msgfmt REQUIRED)
set(BONGO_WEB_LOCALES de fr pt_BR)
foreach(locale IN LISTS BONGO_WEB_LOCALES)
    set(mo_file ${CMAKE_CURRENT_BINARY_DIR}/locale/${locale}/LC_MESSAGES/bongo-web.mo)
    add_custom_command(OUTPUT ${mo_file}
        COMMAND ${CMAKE_COMMAND} -E make_directory
                ${CMAKE_CURRENT_BINARY_DIR}/locale/${locale}/LC_MESSAGES
        COMMAND ${MSGFMT_EXECUTABLE} --check -o ${mo_file}
                ${CMAKE_SOURCE_DIR}/po/bongo-web/${locale}.po
        DEPENDS ${CMAKE_SOURCE_DIR}/po/bongo-web/${locale}.po VERBATIM)
    list(APPEND BONGO_WEB_CATALOGS ${mo_file})
    install(FILES ${mo_file}
            DESTINATION ${LOCALEDIR}/${locale}/LC_MESSAGES)
endforeach()

add_custom_target(bongo-web-check ALL
    COMMAND ${Python3_EXECUTABLE} -m py_compile
            ${CMAKE_CURRENT_BINARY_DIR}/bongo-web
    DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/bongo-web ${BONGO_WEB_CATALOGS}
    VERBATIM)

install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/bongo-web
        DESTINATION ${SBIN_INSTALL_DIR})

install(DIRECTORY bongo_web
        DESTINATION ${PYTHON_SITEPACKAGES_PATH}
        FILES_MATCHING
        PATTERN "__pycache__" EXCLUDE
        PATTERN "*.py")

install(DIRECTORY static/
        DESTINATION ${DATA_INSTALL_DIR}/web)

if(BUILD_TESTING)
    add_test(NAME web-dav-discovery
        COMMAND ${CMAKE_COMMAND} -E env
                "PYTHONPATH=${CMAKE_CURRENT_SOURCE_DIR}:${CMAKE_SOURCE_DIR}/src/libs/python"
                "PYTHONPYCACHEPREFIX=${CMAKE_CURRENT_BINARY_DIR}/pycache"
                "PYTHONWARNINGS=error::ResourceWarning"
                "BONGO_WEB_ENTRYPOINT=${CMAKE_CURRENT_BINARY_DIR}/bongo-web"
                "BONGO_PYTHON_EXTENSION_DIR=$<TARGET_FILE_DIR:_external_accounts>"
                ${Python3_EXECUTABLE} -m unittest discover
                -s ${CMAKE_CURRENT_SOURCE_DIR}/tests -v)
endif()
