FindGTest

找到 Google C++ 测试框架。

版本 3.20 中添加: 尽可能使用上游 GTestConfig.cmake

导入目标

版本 3.20 中添加: 此模块定义了以下 IMPORTED 目标

GTest::gtest

如果找到,则返回 Google 测试 gtest 库;自动添加 Thread::Thread

GTest::gtest_main

如果找到,则返回 Google 测试 gtest_main

在版本 3.23 中添加。

GTest::gmock

如果找到,则返回 Google Mock gmock 库;自动添加 Thread::Thread

GTest::gmock_main

如果找到,则返回 Google Mock gmock_main

自版本 3.20 起不推荐使用: 为了向后兼容,此模块另外定义了以下不推荐使用的 IMPORTED 目标(自 3.5 起可用)

GTest::GTest

如果找到,则返回 Google 测试 gtest 库;自动添加 Thread::Thread

GTest::Main

如果找到,则返回 Google 测试 gtest_main

结果变量

此模块将在项目中设置以下变量

GTest_FOUND

找到 Google 测试框架

GTEST_INCLUDE_DIRS

包含 Google 测试头的目录

将以下库变量设置为普通变量。当找到调试库时,其中包含调试/优化关键字。

GTEST_LIBRARIES

Google 测试 gtest 库;请注意,它还需要链接到适当的线程库

GTEST_MAIN_LIBRARIES

Google 测试 gtest_main

GTEST_BOTH_LIBRARIES

gtestgtest_main

缓存变量

以下缓存变量也可能设置

GTEST_ROOT

Google 测试安装的根目录(也可以设置为环境变量)

GTEST_MSVC_SEARCH

如果使用 MSVC 编译,此变量可以设置为 MTMD(默认值)以启用搜索 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 的更深入集成

请参见 GoogleTest,了解有关命令 gtest_add_tests()gtest_discover_tests() 的信息。

版本 3.9 中已更改: 以前的 CMake 版本在该模块中定义了 gtest_add_tests() 宏。