task_auto_plan/CMakeLists.txt

38 lines
1.1 KiB
CMake

cmake_minimum_required(VERSION 3.14)
project(AttendanceSystem LANGUAGES CXX)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreadedDebugDLL")
# 可选:处理 MSVC 的 utf-8 BOM
if(MSVC)
add_compile_options("/utf-8")
endif()
# 引入 Google Test
find_package(GTest REQUIRED)
include(GoogleTest)
# 主库目标
add_library(attendance_lib STATIC
src/app.cpp
include/app.hpp
)
target_include_directories(attendance_lib PUBLIC include)
# 主程序
target_link_libraries(attendance_lib PUBLIC)
add_executable(attendance_system src/main.cpp)
target_link_libraries(attendance_system PRIVATE attendance_lib)
# 测试目标
get_filename_component(TEST_SRC tests/basic_test.cpp NAME)
add_executable(basic_test tests/basic_test.cpp)
target_link_libraries(basic_test PRIVATE attendance_lib GTest::GTest GTest::Main)
target_include_directories(basic_test PRIVATE include)
gtest_discover_tests(basic_test)
# 旧式测试目标(可选保留)
# add_executable(basic_test_old tests/basic_test_old.cpp)
# target_link_libraries(basic_test_old PRIVATE attendance_lib)