message(STATUS "MSVC value: ${MSVC}") if (MSVC) set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$: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})