cmake_minimum_required(VERSION 3.12)
project(AttendanceSystem VERSION 1.0.0 LANGUAGES CXX)

set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)

# 设置输出目录
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)

# 添加可执行文件
add_executable(attendance_system
    src/main.cpp
    src/app.cpp
    src/employee.cpp
    src/schedule.cpp
    src/checkin.cpp
    src/attendance.cpp
)

target_include_directories(attendance_system PRIVATE include)

# 添加测试可执行文件
add_executable(basic_test
    tests/basic_test.cpp
    src/employee.cpp
    src/schedule.cpp
    src/checkin.cpp
    src/attendance.cpp
)

target_include_directories(basic_test PRIVATE include)

# 安装目标
install(TARGETS attendance_system
    RUNTIME DESTINATION bin
)

install(DIRECTORY include/
    DESTINATION include
    FILES_MATCHING PATTERN "*.hpp"
)