Как создать подпроект с тестами GTest?
У меня есть проект с главным cmake
cmake_minimum_required(VERSION 3.23)
project(MI VERSION 1.0.0)
enable_testing()
include(${PROJECT_SOURCE_DIR}/cmake/SetEnv.cmake)
add_subdirectory(${LIBRARY_FOLDER})
add_subdirectory(MI.Test)
И подпроект с файлом MI.Test/CMakeLists.txt
include(FetchContent)
FetchContent_Declare(
googletest
URL https://github.com/google/googletest/archive/refs/heads/main.zip
)
set(BUILD_SHARED_LIBS OFF)
set(gtest_force_shared_crt ON CACHE BOOL "" FORCE)
FetchContent_MakeAvailable(googletest)
add_executable(MI.Test
# ...
)
target_link_libraries(MI.Test PRIVATE
MI::Core
gtest_main
gmock_main
)
install(
TARGETS MI.Test
RUNTIME DESTINATION bin
)
include(GoogleTest)
gtest_discover_tests(MI.Test
WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}/_build/MI/Release"
)
В gtest_discover_tests мне приходится указывать WORKING_DIRECTORY, чтобы MI.Test.exe видел MI.Core.dll. Но мне кажется, что это неправильное решение.
Во-первых, приходится каждый раз вручную менять WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}/_build/MI/Release" на WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}/_build/MI/Debug"
Во-вторых, я не могу собрать одновременно Release и Debug.
Подскажите, как правильно сделать подпроект с тестами?