【发布时间】:2011-08-02 08:30:37
【问题描述】:
这是我想做的:
- 输入
make all将构建我的库和它的文档。 - 输入
make test将构建我的库(如有必要)、gtest,然后是我的测试 - 如果需要,键入
make check会运行make test,然后运行可执行文件
现在我只设法让第一个工作。 我遇到的问题是 gtest 的条件包含。
Gtest 使用了很好的 CMake,理论上我需要做的就是将 gtest 目录包含在 add_subdirectory 中,但之后总是会构建 gtest。
我现在的结构是:
CMakeLists.txt(在这里我为 doc 和库添加目标) doc(我的 doxygen 文档) 包括(我的标题) lib(我编译的库所在的位置) src(我的 .cpp 文件所在的位置) 测试 CMakeLists.txt(在这里我为 gest 和我的测试添加目标) bin(测试可执行文件所在的位置) contrib (其中 gtest 是) src(我的测试)我试图弄清楚如何将 gtest 作为依赖项添加到 test-target 但不是每次都构建 gtest。
我真的很生气,关于学习 CMake 的信息很少甚至没有,所以如果有人知道任何深入的教程(可在互联网上免费获得),那就太棒了。
【问题讨论】:
-
如果您知道这一点,您是否有兴趣帮助我将其添加到 C++ 库项目模板 (code.google.com/p/cpp-library-project-template) 中? (subversion 代码目前使用 gmock/gtest 和 glog,尽管发布的版本使用 unittest++。目前,它一直构建测试,并在运行“make”时执行测试)。
-
哇,现在感觉有点傻。诀窍是做
add_subdirectory(contrib/gtest EXCLUDE_FROM_ALL)和add_executable(test EXCLUDE_FROM_ALL foo.cpp)
标签: cmake googletest