我正在将现有的 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 取决于release-1.8.1
googletest。
现在,项目 B 使用相同的命令拉入 googletest,但依赖于release-1.7.0
(不同于项目 A 的依赖项)并且项目 B 也将项目 A 作为另一个外部项目拉入。
当我们在项目 B 上运行 cmake 时,这是否会在 googletest 版本之间产生某种冲突?