cmake_minimum_required(VERSION 3.16)
project(AttendanceViewer VERSION 1.0.0 LANGUAGES CXX)

set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

# 自动处理Qt的MOC、UIC和RCC
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTORCC ON)

# 查找Qt5组件
find_package(Qt5 REQUIRED COMPONENTS
    Core
    Widgets
    Network
)

# 源文件
set(SOURCES
    src/main.cpp
    src/MainWindow.cpp
    src/AttendanceRecord.cpp
    src/TimeSlotConfig.cpp
    src/SettingsDialog.cpp
    src/StatisticsDialog.cpp
    src/NetworkApiManager.cpp
    src/ServerConfigDialog.cpp
)

# 头文件
set(HEADERS
    include/MainWindow.h
    include/AttendanceRecord.h
    include/TimeSlotConfig.h
    include/SettingsDialog.h
    include/StatisticsDialog.h
    include/NetworkApiManager.h
    include/ServerConfigDialog.h
)

# 包含目录
include_directories(${CMAKE_SOURCE_DIR}/include)

# 创建可执行文件
add_executable(${PROJECT_NAME} ${SOURCES} ${HEADERS})

# 链接Qt库
target_link_libraries(${PROJECT_NAME}
    Qt5::Core
    Qt5::Widgets
    Qt5::Network
)

# Windows平台特定设置
if(WIN32)
    set_target_properties(${PROJECT_NAME} PROPERTIES
        WIN32_EXECUTABLE ON
    )
endif()

# 安装目标
install(TARGETS ${PROJECT_NAME}
    RUNTIME DESTINATION bin
)
