以下是我想做的事情:
- 输入
make all
将构建我的库及其文档。 - 输入
make test
将构建我的库(如果需要),gtest,然后运行我的测试。 - 输入
make check
将运行make test
(如果需要)并运行可执行文件。
目前,我只能让第一个工作。我的问题在于gtest的条件包含。
GTest使用CMake,这很好,理论上我只需要使用add_subdirectory
包含gtest目录,但这样gtest就总是会被构建。
我的结构现在是:
CMakeLists.txt (我在这里为doc和库添加目标) doc (我的doxygen文档) include (我的头文件) lib (编译后的库存放位置) src (.cpp文件所在位置) test CMakeLists.txt (我在这里为gtest和我的测试添加目标) bin (测试可执行文件所在位置) contrib (gtest所在位置) src (我的测试)
我试图弄清楚如何将gtest添加为test
目标的依赖项,但并不总是构建gtest。
我对学习CMake的信息非常烦恼,因为几乎没有什么深入的教程(可以在互联网上免费获得),如果有人知道这方面的信息,那将是太棒了。
add_subdirectory(contrib/gtest EXCLUDE_FROM_ALL)
和add_executable(test EXCLUDE_FROM_ALL foo.cpp)
。 - Nicklas A.