cmake_minimum_required(VERSION 3.16)

project(test_thumbnail)

set(CMAKE_INCLUDE_CURRENT_DIR ON)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)
set(CMAKE_AUTOUIC ON)

set(CMAKE_CXX_STANDARD 14)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC --coverage")

find_package(OpenGL REQUIRED)
find_package(PkgConfig REQUIRED)
find_package(Qt5 REQUIRED NO_MODULE COMPONENTS Core Gui Quick Qml Test Widgets REQUIRED)

pkg_check_modules(GL REQUIRED gl)
pkg_check_modules(DRM REQUIRED libdrm)
pkg_check_modules(EGL REQUIRED egl)
pkg_check_modules(KYC REQUIRED kywc)
pkg_check_modules(Qt5Xdg REQUIRED Qt5Xdg)
pkg_check_modules(QGSettings REQUIRED gsettings-qt)
pkg_check_modules(GTest REQUIRED gtest)

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

include_directories(${Qt5Gui_PRIVATE_INCLUDE_DIRS})
include_directories(${Qt5Quick_PRIVATE_INCLUDE_DIRS})
include_directories(${GL_INCLUDE_DIRS})
include_directories(${DRM_INCLUDE_DIRS})
include_directories(${EGL_INCLUDE_DIRS})
include_directories(${KYC_INCLUDE_DIRS})
include_directories(${Qt5Xdg_INCLUDE_DIRS})
include_directories(${QGSettings_INCLUDE_DIRS})

add_executable(test_thumbnail
    main.cpp
    test_thumbnail.cpp
    test_thumbnail.h
    mock_kywc_stub.cpp
    ${SOURCE_DIR}/context.cpp
    ${SOURCE_DIR}/toplevel.cpp
    ${SOURCE_DIR}/workspace.cpp
    ${SOURCE_DIR}/output.cpp
    ${SOURCE_DIR}/thumbnail.cpp
)

target_link_libraries(test_thumbnail
    PRIVATE
    Qt5::Core
    Qt5::Gui
    Qt5::Quick
    Qt5::Qml
    Qt5::Test
    Qt5::Widgets
    ${OPENGL_gl_LIBRARY}
    ${EGL_LIBRARIES}
    ${GL_LIBRARIES}
    ${DRM_LIBRARIES}
    ${KYC_LIBRARIES}
    ${Qt5Xdg_LIBRARIES}
    ${QGSettings_LIBRARIES}
    ${GTEST_LIBRARIES}
    -lgcov
)

target_compile_definitions(test_thumbnail PRIVATE QT_QML_DEBUG)