Пытаюсь к проекту прикрутить тесты. Понял, что абсолютно не понимаю как это сделать и что у меня не так.
Project
src
subdirs
*.cpp
*.h
test
test_*.cpp
CMakeLists.txt
Корневой CMakeLists.txt выглядит вот так:
set (PROJECT Project)
project (${PROJECT})
set (INCLUDE_DIR ${PROJECT_SOURCE_DIR}/src)
set (SRC_DIR ${PROJECT_SOURCE_DIR}/src)
file(GLOB HEADERS "${INCLUDE_DIR}/*.h" "${INCLUDE_DIR}/subdirs/*.h" )
file(GLOB SOURCES "${SRC_DIR}/*.cpp" "${SRC_DIR}/subdirs/*.cpp" )
source_group ("Header Files" FILES ${HEADERS})
source_group ("Source Files" FILES ${SOURCES})
add_executable (${PROJECT} ${SOURCES})
target_link_libraries(${PROJECT} thread rt)
Т.е. я не создают CMakeLists.txt в поддиректориях, у меня нет статических библиотек, все просто собирается в один бинарник.
Далее, я хочу добавить GTest. И вот тут у меня полный ступор. Могу ли я его добавить просто в этот корневой проект. Если да то имеет ли значение в каком месте?
enable_test()
set(PROJECT_TEST ${PROJECT}_test)
file(GLOB TEST_SRC_FILES ${PROJECT_SOURCE_DIR}/test/*.cpp)
add_executable(${PROJECT_TEST} ${TEST_SRC_FILES})
target_link_libraries(${PROJECT_TEST} pthread)
target_link_libraries(${PROJECT_TEST} rt)
add_test(${PROJECT_TEST} ${PROJECT_TEST})
add_dependency(${PROJECT_TEST} ${PROJECT})
Вопрос, нужно ли мне разносить все свои исходники на Main часть и на все остальное в статическую библиотеку, которую подключать к тестам. Можно ли без вот этого разноса обойтись?