我正在将现有的C ++构建系统迁移到CMake,并且对外部项目依赖项有疑问。
场景是我们有两个项目A和B。
项目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取决于googletest的release-1.8.1
。
现在,项目B使用相同的命令插入googletest,但依赖于release-1.7.0
(不同于项目A的依赖关系),项目B也将项目A引入为另一个外部项目。
当我们在项目B上运行cmake时,这会在googletest版本之间造成某种冲突吗?