cppjieba/test/unittest/CMakeLists.txt
Yanyi Wu 5928872950 build: enhance CMakeLists for MSVC and test linking
- Updated MSVC runtime library setting to support both Debug and Release configurations.
- Added specific compiler flags for Release and Debug builds.
- Included gmock and gmock_main in the test executable linking to ensure comprehensive testing capabilities.
2025-05-02 22:49:55 +08:00

50 lines
1.3 KiB
CMake

message(STATUS "MSVC value: ${MSVC}")
if (MSVC)
set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>DLL")
set(gtest_force_shared_crt ON CACHE BOOL "" FORCE)
add_compile_options(/utf-8)
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /MD")
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /MDd")
endif()
include(FetchContent)
FetchContent_Declare(
googletest
GIT_REPOSITORY https://github.com/google/googletest.git
GIT_TAG release-1.12.1
)
FetchContent_MakeAvailable(googletest)
SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR})
SET(LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR}/lib)
ADD_DEFINITIONS(-DLOGGING_LEVEL=LL_WARNING)
# Add include directories
INCLUDE_DIRECTORIES(
${CMAKE_CURRENT_BINARY_DIR}
${CMAKE_BINARY_DIR}/test
${PROJECT_SOURCE_DIR}/include
${PROJECT_SOURCE_DIR}/deps/limonp/include
${CMAKE_BINARY_DIR}/_deps/googletest-src/googletest/include
)
ADD_EXECUTABLE(test.run
gtest_main.cpp
keyword_extractor_test.cpp
trie_test.cpp
segments_test.cpp
pos_tagger_test.cpp
jieba_test.cpp
pre_filter_test.cpp
unicode_test.cpp
textrank_test.cpp
)
TARGET_LINK_LIBRARIES(test.run gtest gtest_main gmock gmock_main)
enable_testing()
ADD_TEST(NAME test.run COMMAND test.run)
SET_TESTS_PROPERTIES(test.run PROPERTIES WORKING_DIRECTORY ${CMAKE_SOURCE_DIR})