FindGTest

尋找 Google C++ 測試框架。

新增於 3.20 版本: 如果可能,會使用上游的 GTestConfig.cmake

導入的目標

新增於 3.20 版本: 此模組定義了以下 IMPORTED 目標

GTest::gtest

如果找到 Google Test 的 gtest 函式庫,則會自動加入 Thread::Thread

GTest::gtest_main

如果找到 Google Test 的 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 Test 的 gtest 函式庫,則會自動加入 Thread::Thread

GTest::Main

如果找到 Google Test 的 gtest_main 函式庫

結果變數

此模組將在您的專案中設定以下變數

GTest_FOUND

是否找到 Google 測試框架

GTEST_INCLUDE_DIRS

包含 Google Test 標頭檔的目錄

以下的函式庫變數會設定為一般變數。當找到除錯函式庫時,這些變數會包含除錯/最佳化關鍵字。

GTEST_LIBRARIES

Google Test 的 gtest 函式庫;請注意,它也需要連結到適當的執行緒函式庫

GTEST_MAIN_LIBRARIES

Google Test 的 gtest_main 函式庫

GTEST_BOTH_LIBRARIES

gtestgtest_main 兩者

快取變數

以下快取變數也可以設定

GTEST_ROOT

Google Test 安裝的根目錄 (也可以設定為環境變數)

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() 巨集。