Обычно, когда у вас есть тестовый проект, вы должны связать свои тестовые исполняемые файлы с остальной частью кода.Делая это с помощью CMake, вы должны автоматически получать транзитивные зависимости.Тем не менее, для этого вам нужен API на основе цели CMake.
add_executable(Main ... your cpp files ...)
add_library(YourLib ... your cpp files ...)
add_subdirectory(3rdparty/glfw) # or find_package(glfw)
# link YourLibs to glfw
target_link_libraries(YourLibs PUBLIC glfw)
# link Main to YourLibs and its public dependencies
target_link_libraries(Main PUBLIC YourLibs)
Затем в своем тестовом файле cmake создайте ссылку на ту же цель, что и у вашего exe, чтобы получить доступ к своей собственной функции, включите каталоги и библиотеки:
add_executable(Test cppfile.cpp)
add_test(Test)
target_link_libraries(Test PRIVATE YourLibs gtest)