38 lines
1.1 KiB
CMake
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) |