# CMakeLists.txt for calendarinfo unit tests
cmake_minimum_required(VERSION 3.5)

# Project name
project(test_calendarinfo)

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

# Find Qt5 components
find_package(Qt5 REQUIRED COMPONENTS Core Widgets)

# Find GTest
find_package(GTest REQUIRED)

# Enable C++14 support
set(CMAKE_CXX_STANDARD 14)

# Include directories
include_directories(
    ../../../lunarcalendarwidget
    ${Qt5Core_INCLUDE_DIRS}
    ${Qt5Widgets_INCLUDE_DIRS}
    ${GTEST_INCLUDE_DIRS}
)

# Source files
set(SOURCES
    test_calendarinfo.cpp
    main.cpp
    ../../../lunarcalendarwidget/calendarinfo.cpp
)

# Create executable
add_executable(${PROJECT_NAME} ${SOURCES})

# Link libraries
target_link_libraries(${PROJECT_NAME}
    Qt5::Core
    Qt5::Widgets
    ${GTEST_LIBRARIES}
    ${GMOCK_LIBRARIES}
    pthread
)

# Compiler flags for coverage
target_compile_options(${PROJECT_NAME} PRIVATE --coverage)
target_link_options(${PROJECT_NAME} PRIVATE --coverage -lgcov)