查找GTest¶
找到 Google C++ 测试框架。
在 3.20 版本加入: 如果可能,使用上游``GTestConfig.cmake``。
导入目标¶
在 3.20 版本加入: 该模块定义了以下 IMPORTED 目标:
GTest::gtestGoogle Test
gtest库,如果找到的话;自动添加 Thread::ThreadGTest::gtest_mainGoogle Test
gtest_main库,如果找到的话
在 3.23 版本加入.
GTest::gmockGoogle Mock
gmock库,如果找到的话;自动添加 Thread::ThreadGTest::gmock_mainGoogle Mock
gmock_main库,如果找到的话
自 3.20 版本弃用: 为了向后兼容,此模块另外定义了以下已弃用的 IMPORTED 目标(自 3.5 起可用):
GTest::GTestGoogle Test
gtest库,如果找到的话;自动添加 Thread::ThreadGTest::MainGoogle Test
gtest_main库,如果找到的话
结果变量¶
该模块将在您的项目中设置以下变量:
GTest_FOUND找到谷歌测试框架
GTEST_INCLUDE_DIRS包含 Google 测试标头的目录
下面的库变量设置为普通变量。当找到调试库时,这些包含调试/优化关键字。
GTEST_LIBRARIESGoogle Test
gtest库;请注意,它还需要与适当的线程库链接GTEST_MAIN_LIBRARIESGoogle Test
gtest_main库GTEST_BOTH_LIBRARIESgtest和gtest_main
缓存变量¶
还可以设置以下缓存变量:
GTEST_ROOTGoogle Test 安装的根目录(也可以设置为环境变量)
GTEST_MSVC_SEARCH如果使用 MSVC 编译,这个变量可以设置为
MT或 ``MD``(默认值)以启用搜索 GTest 构建树
用法示例¶
enable_testing()
find_package(GTest REQUIRED)
add_executable(foo foo.cc)
target_link_libraries(foo GTest::gtest GTest::gtest_main)
add_test(AllTestsInFoo foo)
与 CTest 深度集成¶
有关 gtest_add_tests() 和 gtest_discover_tests() 命令的信息,请参阅:module:GoogleTest。
在 3.9 版本发生变更: 以前的 CMake 版本在此模块中定义了 gtest_add_tests() 宏。