cmake_minimum_required(VERSION 3.16)

project(output_test)

set(CMAKE_CXX_STANDARD 14)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_AUTOMOC ON)

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g -O0 -fprofile-arcs -ftest-coverage")
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fprofile-arcs -ftest-coverage -lgcov")

find_package(Qt5 REQUIRED COMPONENTS Core Quick Widgets DBus Test)
find_package(GTest)
find_package(PkgConfig REQUIRED)
find_package(ukui-search REQUIRED)

pkg_check_modules(KYWC REQUIRED kywc)
pkg_check_modules(XDG REQUIRED Qt5Xdg)

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

include_directories(${SOURCE_DIR})
include_directories(${TEST_SOURCE_DIR})

include_directories(${KYWC_INCLUDE_DIRS})
include_directories(${GTEST_INCLUDE_DIRS})
include_directories(${XDG_INCLUDE_DIRS})
include_directories(${ukui-search_INCLUDE_DIRS})

include_directories(${Qt5Quick_PRIVATE_INCLUDE_DIRS})

set(TEST_SOURCES
    main.cpp
    test_output.cpp
    test_output.h
    mock_kywc.cpp
    mock_kywc.h
    ${SOURCE_DIR}/output.cpp
    ${SOURCE_DIR}/context.cpp
    ${SOURCE_DIR}/workspace.cpp
    ${SOURCE_DIR}/toplevel.cpp
    ${SOURCE_DIR}/thumbnail.cpp
    ${SOURCE_DIR}/log-utils.cpp
)

add_executable(test_output ${TEST_SOURCES})

target_link_libraries(test_output
    Qt5::Core
    Qt5::Widgets
    Qt5::DBus
    Qt5::Test
    ${KYWC_LIBRARIES}
    ${XDG_LIBRARIES}
    ${ukui-search_LIBRARIES}
    ${GTEST_BOTH_LIBRARIES}
    wayland-client
)
