if(CMAKE_CURRENT_SOURCE_DIR STREQUAL CMAKE_SOURCE_DIR)
    cmake_minimum_required(VERSION 3.30)
    project(tst_mainwindowsattab)
endif()

set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

# Find Qt6 Core and Test modules
find_package(Qt6 REQUIRED COMPONENTS Core Test)
# Enable AUTOMOC before add_executable
set(CMAKE_AUTOMOC ON)

# Collect test sources
file(GLOB TEST_SOURCES "*.cpp")
file(GLOB TEST_HEADERS "*.h")

# Create the test executable
add_executable(tst_mainwindowsattab
    ${TEST_SOURCES}
    ../../src/inputwidgets/mainwindowsattab.cpp
    ../../src/dataproxy_sqlite.cpp
    ../../src/qso.cpp
    ../../src/frequency.cpp
    ../../src/callsign.cpp
    ../../src/utilities.cpp
    ../../src/locator.cpp
    ../../src/database/database.cpp
    ../../src/database/datacache.cpp
    ../../src/database/queryexecutor.cpp
    ../../src/database/db_adif_primary_subdvisions_data.cpp
    ../../src/adif.cpp


    ${TEST_HEADERS}
    ../../src/inputwidgets/mainwindowsattab.h
    ../../src/dataproxy_sqlite.h
    ../../src/qso.h
    ../../src/frequency.h
    ../../src/callsign.h
    ../../src/utilities.h
    ../../src/locator.h
    ../../src/klogdefinitions.h
    ../../src/database/database.h
    ../../src/database/datacache.h
    ../../src/database/queryexecutor.h
    ../../src/database/db_adif_primary_subdvisions_data.h
    ../../src/adif.h
)

# Enable MOC for Qt signals/slots if needed
set(CMAKE_AUTOMOC ON)

# Link with Qt6 Core and Test
target_link_libraries(tst_mainwindowsattab
    Qt6::Core
    Qt6::Test
    Qt6::Sql
    Qt6::Widgets
)

# Register the test with CTest
add_test(NAME tst_mainwindowsattab COMMAND tst_mainwindowsattab)
set_tests_properties(tst_mainwindowsattab PROPERTIES ENVIRONMENT "QT_QPA_PLATFORM=offscreen")

