# SPDX-License-Identifier: BSD-3-Clause
# SPDX-FileCopyrightText: 2025-2026 Laurent Montel <montel@kde.org>

set(LIB_AUTOTEST_PCH_WIDGETS)

if(ENABLE_PCH)
    file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/empty_pch.cpp "/*empty file*/")
    file(
        WRITE ${CMAKE_CURRENT_BINARY_DIR}/textautogeneratewidgets_pch.h
        "#pragma once
        #include <QObject>
        #include <QTest>
        "
    )
    add_library(textautogeneratewidgetspch_tests STATIC ${CMAKE_CURRENT_BINARY_DIR}/empty_pch.cpp)
    target_precompile_headers(
        textautogeneratewidgetspch_tests
        PRIVATE
            ${CMAKE_CURRENT_BINARY_DIR}/textautogeneratewidgets_pch.h
    )
    target_link_libraries(
        textautogeneratewidgetspch_tests
        PRIVATE
            Qt::Core
            Qt::Test
    )
    set(LIB_AUTOTEST_PCH_WIDGETS textautogeneratewidgetspch_tests)
endif()

macro(add_textautogenerate_widgets_unittest _source)
    get_filename_component(_name ${_source} NAME_WE)
    ecm_add_test(${_source} ${_name}.h TEST_NAME ${_name}
        NAME_PREFIX "textautogenerate-widget-"
        LINK_LIBRARIES ${LIB_AUTOTEST_PCH_WIDGETS} Qt::Test KF6::TextAutoGenerateText KF6::TextWidgets KF6::WidgetsAddons KF6::SyntaxHighlighting KF6::TextAddonsWidgets
    )
endmacro()
add_textautogenerate_widgets_unittest(textautogeneratetextlineeditwidgettest.cpp)
add_textautogenerate_widgets_unittest(textautogenerateresultwidgettest.cpp)
add_textautogenerate_widgets_unittest(textautogeneratetextlineedittest.cpp)
add_textautogenerate_widgets_unittest(textautogeneratewidgettest.cpp)
add_textautogenerate_widgets_unittest(textautogeneratedialogtest.cpp)
add_textautogenerate_widgets_unittest(textautogeneratelistviewtest.cpp)
add_textautogenerate_widgets_unittest(textautogeneratehistorywidgettest.cpp)
add_textautogenerate_widgets_unittest(textautogeneratenotworkingwidgettest.cpp)
add_textautogenerate_widgets_unittest(textautogenerateheaderwidgettest.cpp)
add_textautogenerate_widgets_unittest(textautogenerateselectedmessagebackgroundanimationtest.cpp)
add_textautogenerate_widgets_unittest(textautogeneratehistorylistviewtest.cpp)
add_textautogenerate_widgets_unittest(textautogeneratesearchwidgettest.cpp)
add_textautogenerate_widgets_unittest(textautogeneratesearchdialogtest.cpp)
add_textautogenerate_widgets_unittest(textautogeneratesearchlistviewtest.cpp)
add_textautogenerate_widgets_unittest(textautogeneratesearchlineedittest.cpp)
add_textautogenerate_widgets_unittest(textautogeneratetextinstancesmanagerwidgettest.cpp)
add_textautogenerate_widgets_unittest(textautogeneratequickaskdialogtest.cpp)
add_textautogenerate_widgets_unittest(textautogeneratequickaskwidgettest.cpp)
add_textautogenerate_widgets_unittest(textautogeneratequickaskheaderwidgettest.cpp)
add_textautogenerate_widgets_unittest(textautogenerateaddinstancewidgettest.cpp)
add_textautogenerate_widgets_unittest(textautogeneratenotinstancefoundwidgettest.cpp)
add_textautogenerate_widgets_unittest(textautogeneratenetworkpluginconfigurewidgettest.cpp)
add_textautogenerate_widgets_unittest(textautogeneratetextconfigurepromptwidgettext.cpp)
add_textautogenerate_widgets_unittest(textautogeneratetoolswidgettest.cpp)
add_textautogenerate_widgets_unittest(textautogeneratetoolpluginconfigurewidgettest.cpp)
add_textautogenerate_widgets_unittest(textautogeneratetoolpluginshowmetadatadialogtest.cpp)
add_textautogenerate_widgets_unittest(textautogeneratetoolpluginshowmetadatawidgettest.cpp)
add_textautogenerate_widgets_unittest(textautogeneratetextlineeditattachmentwidgettest.cpp)
add_textautogenerate_widgets_unittest(textautogeneratetextlineeditattachmentclickablewidgettest.cpp)
add_textautogenerate_widgets_unittest(textautogenerateshowimagedialogtest.cpp)
add_textautogenerate_widgets_unittest(textautogenerateshowimagewidgettest.cpp)
add_textautogenerate_widgets_unittest(textautogenerateshowmodelinfodialogtest.cpp)
add_textautogenerate_widgets_unittest(textautogenerateshowmodelinfowidgettest.cpp)
