cmake_minimum_required(VERSION 3.24) project(hunjing_lingtai VERSION 0.1.0 LANGUAGES CXX) set(CMAKE_CXX_STANDARD 23) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_CXX_EXTENSIONS OFF) # 编译警告全开并视为错误(AGENTS.md 8.4) if(MSVC) add_compile_options(/W4 /WX) else() add_compile_options(-Wall -Wextra -Wpedantic -Wshadow -Wconversion -Wsign-conversion -Werror) endif() # 符号默认隐藏,仅导出 hj_*(API 卫生;由 HJ_API 宏显式导出) set(CMAKE_CXX_VISIBILITY_PRESET hidden) set(CMAKE_VISIBILITY_INLINES_HIDDEN ON) add_library(hunjing SHARED src/lingtai.cpp) target_include_directories(hunjing PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/include) # 单元测试(doctest,ADR-025);单头直接引入,不用 FetchContent 拉网络 add_executable(lingtai_tests tests/test_core.cpp src/lingtai.cpp) target_include_directories(lingtai_tests PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/include ${CMAKE_CURRENT_SOURCE_DIR}/third_party) enable_testing() add_test(NAME lingtai_tests COMMAND lingtai_tests)