cmake_minimum_required(VERSION 3.16)
project(test_ThumbnailItem)

set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)
set(CMAKE_AUTOUIC ON)

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} --coverage")
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} --coverage -lgcov")

find_package(Qt5 CONFIG REQUIRED COMPONENTS Core Gui Quick Test)
find_package(PkgConfig REQUIRED)
pkg_check_modules(QGSettings REQUIRED gsettings-qt)
pkg_check_modules(GL REQUIRED gl)
pkg_check_modules(EGL REQUIRED egl)
pkg_check_modules(KDK REQUIRED kysdk-sysinfo)
pkg_check_modules(DATACOLLECT REQUIRED kysdk-datacollect)
find_package(Qt5Xdg REQUIRED)

set(SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../../../../windowsview/ukui-window-switch-wlcom)

include_directories(
    ${SOURCE_DIR}
    ${QGSettings_INCLUDE_DIRS}
    ${GL_INCLUDE_DIRS}
    ${EGL_INCLUDE_DIRS}
    ${KDK_INCLUDE_DIRS}
    ${DATACOLLECT_INCLUDE_DIRS}
    ${Qt5Gui_PRIVATE_INCLUDE_DIRS}
)

file(GLOB TEST_SOURCES
    "${CMAKE_CURRENT_SOURCE_DIR}/test_ThumbnailItem.cpp"
    "${CMAKE_CURRENT_SOURCE_DIR}/test_ThumbnailItem.h"
    "${CMAKE_CURRENT_SOURCE_DIR}/main.cpp"
    "${CMAKE_CURRENT_SOURCE_DIR}/mock_kywc.cpp"
)

set(UKUI_WLCOM_SOURCES
    ${SOURCE_DIR}/ThumbnailItem.cpp
    ${SOURCE_DIR}/context.cpp
    ${SOURCE_DIR}/thumbnail.cpp
    ${SOURCE_DIR}/output.cpp
    ${SOURCE_DIR}/toplevel.cpp
    ${SOURCE_DIR}/workspace.cpp
    ${SOURCE_DIR}/log-utils.cpp
    ${SOURCE_DIR}/discard-egl-pixmap-runnable.h
)

add_executable(${PROJECT_NAME} ${TEST_SOURCES} ${UKUI_WLCOM_SOURCES})

target_link_libraries(${PROJECT_NAME}
    Qt5::Core
    Qt5::Gui
    Qt5::Quick
    Qt5::Qml
    Qt5::Test
    ${QGSettings_LIBRARIES}
    ${GL_LIBRARIES}
    ${EGL_LIBRARIES}
    ${KDK_LINK_LIBRARIES}
    ${DATACOLLECT_LINK_LIBRARIES}
    drm
    kywc
    Qt5Xdg
)

target_include_directories(${PROJECT_NAME} PRIVATE
    ${CMAKE_CURRENT_SOURCE_DIR}
)