Я пытаюсь интегрировать Google Test в подпроект более крупного проекта, и я не могу найти решение, которое бы меня устраивало.
У меня есть два ограничения: - исходный код Google Test уже где-тов структуре проекта (таким образом, использование URL для загрузки его из репозитория git не вариант) - исходный код Google Test не является подкаталогом моего подпроекта (и никогда не будет)
Поэтому, когда я пытался сделатьчто-то вроде этого:
add_subdirectory( ${GOOGLETEST_PROJECT_LOCATION})
Я получил:
CMake Error at unit_tests/CMakeLists.txt:10 (add_subdirectory):
add_subdirectory not given a binary directory but the given source
directory "${GOOGLETEST_PROJECT_LOCATION}" is not a subdirectory of
"${UNIT_TEST_DIRECTORY}". When
specifying an out-of-tree source a binary directory must be explicitly
specified.
С другой стороны, возможно, ExternalProject_Add может быть решением, но я не знаю, как мне его использовать, когда я не хочувообще загружать источники и использовать источники из определенного места в проекте.
Структура проекта выглядит примерно так:
3rdparty
|--googletest
...
subproject
|--module1
|--file1.cpp
|--CMakeLists.txt
|--module2
|--file2.cpp
|--CMakeLists.txt
|--include
|--module1
|--file1.h
|--module2
|--file2.h
|--unit_test
|--module1
|--file1test.cpp
|--module2
|--file2test.cpp
|--CMakeLists.txt
|--CMakeLists.txt
CMakeLists.txt