# CMakeLists.txt for schedule_item unit tests
cmake_minimum_required(VERSION 3.5.0)
project(test_schedule_item)

# Set C++ standard
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

# Enable Qt features
set(CMAKE_INCLUDE_CURRENT_DIR ON)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTORCC ON)

# Find required packages
find_package(Qt5 COMPONENTS Core Widgets Test Sql REQUIRED)
find_package(PkgConfig REQUIRED)

# Find gsettings-qt package
pkg_check_modules(GSETTING REQUIRED gsettings-qt)

# Source files for test
set(TEST_SOURCES
    test_schedule_item.cpp
    main.cpp
    ../../../lunarcalendarwidget/schedule_item.cpp
    ../../../lunarcalendarwidget/colorarea.cpp
    ../../../lunarcalendarwidget/calendarcolor.cpp
)

# Include directories for the main source files
include_directories(
    ${CMAKE_CURRENT_SOURCE_DIR}/../../..
    ${CMAKE_CURRENT_SOURCE_DIR}/../../../lunarcalendarwidget
    ${GSETTING_INCLUDE_DIRS}
    ${Qt5Core_INCLUDE_DIRS}
    ${Qt5Widgets_INCLUDE_DIRS}
    ${Qt5Sql_INCLUDE_DIRS}
)

# Link directories
link_directories(${GSETTING_LIBRARY_DIRS})

# Create test executable
add_executable(test_schedule_item ${TEST_SOURCES})

# Link libraries
target_link_libraries(test_schedule_item PRIVATE
    Qt5::Core
    Qt5::Widgets
    Qt5::Test
    Qt5::Sql
    ${GSETTING_LIBRARIES}
)

# Enable coverage flags
target_compile_options(test_schedule_item PRIVATE --coverage)
target_link_libraries(test_schedule_item PRIVATE --coverage)