# SPDX-FileCopyrightText: 2023 g10 code GmbH
# SPDX-Contributor: Carl Schwan <carl.schwan@gnupg.com>
# SPDX-License-Identifier: BSD-2-Clause

add_executable(gpgol-server)

ecm_qt_declare_logging_category(gpgol-server-static_SRCS
    HEADER websocket_debug.h
    IDENTIFIER WEBSOCKET_LOG
    CATEGORY_NAME org.gpgol.server.websocket
    DESCRIPTION "Websocket connection"
    EXPORT GPGOL
)

ecm_qt_declare_logging_category(gpgol-server-static_SRCS
    HEADER http_debug.h
    IDENTIFIER HTTP_LOG
    CATEGORY_NAME org.gpgol.server.http
    DESCRIPTION "HTTP connection"
    EXPORT GPGOL
)

target_sources(gpgol-server PRIVATE
    ${gpgol-server-static_SRCS}

    # Controllers
    controllers/abstractcontroller.cpp
    controllers/abstractcontroller.h
    controllers/registrationcontroller.cpp
    controllers/registrationcontroller.h
    controllers/staticcontroller.h
    controllers/staticcontroller.cpp
    controllers/emailcontroller.cpp
    controllers/emailcontroller.h

    # State
    model/serverstate.cpp
    model/serverstate.h

    # web sever
    webserver.cpp
    webserver.h

    main.cpp
)

qt_add_resources(gpgol-server
    PREFIX
        "/"
    FILES
        web/assets/document-decrypt-16.png
        web/assets/document-decrypt-32.png
        web/assets/document-decrypt-64.png
        web/assets/document-decrypt-80.png
        web/assets/script.js
        web/assets/translation.js
        web/assets/vue.global.v3.4.21.js
        web/assets/main.css

        web/index.html
)

target_link_libraries(gpgol-server PRIVATE Qt6::HttpServer Qt6::Core common Qt6::WebSockets)

install(TARGETS gpgol-server ${KDE_INSTALL_TARGETS_DEFAULT_ARGS})
