cpp-mcp/test/CMakeLists.txt

59 lines
1.4 KiB
CMake

cmake_minimum_required(VERSION 3.10)
# Set test project
set(TEST_PROJECT_NAME "mcp_tests")
project(${TEST_PROJECT_NAME})
# Set C++ standard
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
# Use local Google Test
set(GTEST_ROOT ${CMAKE_CURRENT_SOURCE_DIR}/googletest)
add_subdirectory(${GTEST_ROOT} googletest-build)
# For older versions of CMake, this option needs to be set
set(gtest_force_shared_crt ON CACHE BOOL "" FORCE)
# Include header directories
include_directories(${CMAKE_SOURCE_DIR}/include)
include_directories(${CMAKE_SOURCE_DIR}/common)
include_directories(${GTEST_ROOT}/googletest/include)
include_directories(${GTEST_ROOT}/googlemock/include)
# Add test source files
set(TEST_SOURCES
test_mcp_message.cpp
test_mcp_tool.cpp
test_mcp_resource.cpp
test_mcp_client.cpp
test_mcp_server.cpp
test_mcp_direct_requests.cpp
)
# Create test executable
add_executable(${TEST_PROJECT_NAME} ${TEST_SOURCES})
# Link Google Test and MCP library
target_link_libraries(${TEST_PROJECT_NAME} PRIVATE
gtest
gtest_main
gmock
gmock_main
mcp
Threads::Threads
)
# If OpenSSL is found, link OpenSSL libraries
if(OPENSSL_FOUND)
target_link_libraries(${TEST_PROJECT_NAME} PRIVATE ${OPENSSL_LIBRARIES})
endif()
# Enable testing
enable_testing()
# Add test
add_test(
NAME ${TEST_PROJECT_NAME}
COMMAND ${TEST_PROJECT_NAME}
)