cmake_minimum_required(VERSION 3.14)
project(platform-test)

find_package(QT NAMES Qt6 Qt5 COMPONENTS Core Quick Qml Widgets QuickControls2 REQUIRED)
find_package(Qt${QT_VERSION_MAJOR} COMPONENTS Core Quick Qml Widgets QuickControls2 REQUIRED)

set(QRC_FILES qml.qrc)
set(PROJECT_SOURCES
        main.cpp
        ${QRC_FILES}
)
add_executable(${PROJECT_NAME} ${PROJECT_SOURCES})
target_link_libraries(${PROJECT_NAME}
        PRIVATE
        Qt${QT_VERSION_MAJOR}::Core
        Qt${QT_VERSION_MAJOR}::Quick
        Qt${QT_VERSION_MAJOR}::Widgets
        Qt${QT_VERSION_MAJOR}::Qml
        Qt${QT_VERSION_MAJOR}::QuickControls2
)

# Capture test executable
find_package(PkgConfig REQUIRED)
find_package(KF5Wayland)
set(CAPTURE_PC_PKGS egl wayland-client gl)
foreach(external_lib IN ITEMS ${CAPTURE_PC_PKGS})
    pkg_check_modules(${external_lib} REQUIRED IMPORTED_TARGET ${external_lib})
    if(${${external_lib}_FOUND})
        include_directories(${${external_lib}_INCLUDE_DIRS})
        link_directories(${${external_lib}_LIBRARY_DIRS})
        list(APPEND CAPTURE_EXTERNAL_LIBS PkgConfig::${external_lib})
    endif()
endforeach()

set(CAPTURE_SOURCES
        main_capture.cpp
        kywc-capture-thumbnail-item.h
        kywc-capture-thumbnail-item.cpp
        ${QRC_FILES}
)

add_executable(capture-test ${CAPTURE_SOURCES})

# Add wayland protocols include directories
include_directories(${WAYLAND_PROTOCOLS_INCLUDE_DIRS})

target_link_libraries(capture-test
        PRIVATE
        Qt${QT_VERSION_MAJOR}::Core
        Qt${QT_VERSION_MAJOR}::Qml
        Qt${QT_VERSION_MAJOR}::Gui
        Qt${QT_VERSION_MAJOR}::Quick
        Qt::GuiPrivate
        Qt${QT_VERSION_MAJOR}::DBus
        ${CAPTURE_EXTERNAL_LIBS}
        ukui-quick::platform
        KF5::WaylandClient
        Qt5::Gui_EGL

)

add_test(NAME capture-test COMMAND capture-test)