task_auto_plan/CMakeLists.txt

38 lines
1.1 KiB
CMake
Raw Permalink Normal View History

2026-04-25 03:15:03 +00:00
cmake_minimum_required(VERSION 3.14)
2026-04-25 08:10:44 +00:00
project(AttendanceSystem LANGUAGES CXX)
2026-04-25 03:15:03 +00:00
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
2026-04-25 08:10:44 +00:00
set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreadedDebugDLL")
2026-04-25 03:15:03 +00:00
2026-04-25 08:10:44 +00:00
# 可选:处理 MSVC 的 utf-8 BOM
if(MSVC)
add_compile_options("/utf-8")
2026-04-25 03:15:03 +00:00
endif()
2026-04-25 08:10:44 +00:00
# 引入 Google Test
find_package(GTest REQUIRED)
include(GoogleTest)
2026-04-25 03:15:03 +00:00
2026-04-25 08:10:44 +00:00
# 主库目标
add_library(attendance_lib STATIC
2026-04-25 03:15:03 +00:00
src/app.cpp
include/app.hpp
)
2026-04-25 08:10:44 +00:00
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)
2026-04-25 03:15:03 +00:00
2026-04-25 08:10:44 +00:00
# 测试目标
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)
2026-04-25 03:15:03 +00:00
target_include_directories(basic_test PRIVATE include)
2026-04-25 08:10:44 +00:00
gtest_discover_tests(basic_test)
# 旧式测试目标(可选保留)
# add_executable(basic_test_old tests/basic_test_old.cpp)
# target_link_libraries(basic_test_old PRIVATE attendance_lib)