Я нахожусь в процессе перемещения существующей системы сборки C ++ в CMake, и у меня есть вопрос, касающийся зависимостей внешнего проекта.
Сценарий таков, что у нас есть два проекта A и B.
Project A включает googletest как внешний проект с помощью следующей команды:
ExternalProject_Add(gtest
GIT_REPOSITORY git@github.com:google/googletest.git
GIT_TAG "release-1.8.1"
SOURCE_DIR "${CMAKE_BINARY_DIR}/gtest-src"
BINARY_DIR "${CMAKE_BINARY_DIR}/gtest-build"
CONFIGURE_COMMAND ""
BUILD_COMMAND ""
INSTALL_COMMAND ""
TEST_COMMAND ""
)
Обратите внимание, что проект A зависит от release-1.8.1
googletest.
Теперь проект B использует googletest с помощью той же команды, но зависит от release-1.7.0
(отличается от зависимости проекта A) И проект B также использует проект A как другой внешний проект.
Создает ли это какую-то коллизию между версиями googletest, когда мы запускаем cmake в проекте B?