# SPDX-FileCopyrightText: none
# SPDX-License-Identifier: BSD-3-Clause

add_definitions(-DTRANSLATION_DOMAIN=\"akonadi_mailfilter_agent\")

add_library(mailfilteragentprivate)

target_sources(
    mailfilteragentprivate
    PRIVATE
        filterlogdialog.cpp
        filterlogdialog.h
        mailfilterpurposemenuwidget.cpp
        mailfilterpurposemenuwidget.h
        mailfilteragent_private_export.h
)

if(COMPILE_WITH_UNITY_CMAKE_SUPPORT)
    set_target_properties(
        mailfilteragentprivate
        PROPERTIES
            UNITY_BUILD
                ON
    )
endif()

generate_export_header(mailfilteragentprivate BASE_NAME mailfilteragentprivate)
target_link_libraries(
    mailfilteragentprivate
    KF6::I18n
    Qt::Widgets
    KF6::TextCustomEditor
    KPim6::PimCommon
    KPim6::MailCommon
)

set_target_properties(
    mailfilteragentprivate
    PROPERTIES
        OUTPUT_NAME
            mailfilteragentprivate
        VERSION
            ${KDEPIM_LIB_VERSION}
        SOVERSION
            ${KDEPIM_LIB_SOVERSION}
)
install(
    TARGETS
        mailfilteragentprivate
        ${KDE_INSTALL_TARGETS_DEFAULT_ARGS}
    LIBRARY
        NAMELINK_SKIP
)

add_executable(akonadi_mailfilter_agent)
set(dbusobjectmanager_xml org.freedesktop.Akonadi.MailFilterAgent.xml)
set_source_files_properties(
    ${dbusobjectmanager_xml}
    PROPERTIES
        INCLUDE
            "dbusoperators.h"
)
qt_add_dbus_adaptor(akonadi_mailfilter_agent_SRCS ${dbusobjectmanager_xml} mailfilteragent.h MailFilterAgent)

target_sources(
    akonadi_mailfilter_agent
    PRIVATE
        dummykernel.cpp
        filtermanager.cpp
        mailfilteragent.cpp
        dummykernel.h
        filtermanager.h
        mailfilteragent.h
        ${akonadi_mailfilter_agent_SRCS}
)

ecm_qt_declare_logging_category(akonadi_mailfilter_agent HEADER mailfilteragent_debug.h IDENTIFIER MAILFILTERAGENT_LOG CATEGORY_NAME org.kde.pim.mailfilteragent
        DESCRIPTION "kmail (mailfilter agent)"
        OLD_CATEGORY_NAMES log_mailfilteragent
        EXPORT KMAIL
)

if(COMPILE_WITH_UNITY_CMAKE_SUPPORT)
    set_target_properties(
        akonadi_mailfilter_agent
        PROPERTIES
            UNITY_BUILD
                ON
    )
endif()

if(APPLE)
    set_target_properties(
        akonadi_mailfilter_agent
        PROPERTIES
            MACOSX_BUNDLE_INFO_PLIST
                ${kmail_SOURCE_DIR}/agents/Info.plist.template
    )
    set_target_properties(
        akonadi_mailfilter_agent
        PROPERTIES
            MACOSX_BUNDLE_GUI_IDENTIFIER
                "org.kde.Akonadi.mailfilter"
    )
    set_target_properties(
        akonadi_mailfilter_agent
        PROPERTIES
            MACOSX_BUNDLE_BUNDLE_NAME
                "KDE Akonadi Email Filter"
    )
endif()

target_link_libraries(
    akonadi_mailfilter_agent
    KPim6::MailCommon
    KPim6::MessageComposer
    KPim6::PimCommon
    KPim6::AkonadiCore
    KPim6::AkonadiMime
    KPim6::AkonadiAgentWidgetBase
    KPim6::Mime
    KPim6::IdentityManagementCore
    KF6::DBusAddons
    KF6::Notifications
    KF6::WindowSystem
    KF6::I18n
    mailfilteragentprivate
)

install(
    TARGETS
        akonadi_mailfilter_agent
        ${KDE_INSTALL_TARGETS_DEFAULT_ARGS}
)
install(FILES mailfilteragent.desktop DESTINATION "${KDE_INSTALL_DATAROOTDIR}/akonadi/agents")
install(FILES akonadi_mailfilter_agent.notifyrc DESTINATION ${KDE_INSTALL_KNOTIFYRCDIR})

add_subdirectory(tests)
