【发布时间】:2016-01-18 18:24:07
【问题描述】:
当项目的 repo 不是我要使用的库的根目录时,我如何在 CMake 中添加外部项目,但实际上包含两个目录,每个目录都是我要在项目中使用的 repos 的根目录?
我正在努力建立一个使用 Google Test 和 Mock 进行测试的框架 CMake 项目,但是当我尝试使用 ExternalProject_Add 下载 google 测试存储库 (https://github.com/google/googletest) 时,它在构建时抱怨它可以'找不到项目的来源。嗯,那是因为 Google 已经将 googletest 和 googlemock 合并到一个项目中,只不过现在是两个项目。
一些repo的文件结构:
googletest-master/
├──[...no CMakeFiles.txt exists here...]
├──googletest/
│ ├──src/
│ └──CMakeFiles.txt
└──googlemock/
├──src/
└──CMakeFiles.txt
当我执行以下操作时...
ExternalProject_Add(
gtest
GIT_REPOSITORY https://github.com/google/googletest.git
TIMEOUT 10
INSTALL_COMMAND ""
LOG_DOWNLOAD ON
LOG_CONFIGURE ON
LOG_BUILD ON
PREFIX "googletest-master"
)
...它将实际的 repo 下载到 googletest-master/src/gtest,因为我在 repo 前面加上“googletest-master”以使其远离我的主要源代码,并且它假设我正在下载一个项目只有源,并且该源在根目录中。
所以我想完成两件事:
- 将 repo 下载到 googletest-master 目录中,就像我在那里克隆 repo 或从 GitHub 下载 zip 并解压缩它一样。
- 在我的 CMake 项目中构建并包含 googletest 和 googlemock
【问题讨论】:
标签: github cmake googletest