| if (NOT TARGET GTest::gmock) |
| if (NOT protobuf_FORCE_FETCH_DEPENDENCIES) |
| find_package(GTest CONFIG) |
| endif() |
| |
| # Fallback to fetching Googletest from github if it's not found locally. |
| if (NOT GTest_FOUND AND NOT protobuf_LOCAL_DEPENDENCIES_ONLY) |
| include(${protobuf_SOURCE_DIR}/cmake/dependencies.cmake) |
| message(STATUS "Fallback to downloading GTest ${googletest-version} from GitHub") |
| |
| include(FetchContent) |
| FetchContent_Declare( |
| googletest |
| GIT_REPOSITORY "https://github.com/google/googletest.git" |
| GIT_TAG "v${googletest-version}" |
| ) |
| # Due to https://github.com/google/googletest/issues/4384, we can't name this |
| # GTest for use with find_package until 1.15.0. |
| FetchContent_MakeAvailable(googletest) |
| endif() |
| endif() |
| |
| if (NOT TARGET GTest::gmock) |
| message(FATAL_ERROR |
| "Cannot find googletest dependency that's needed to build tests.\n" |
| "If instead you want to skip tests, run cmake with:\n" |
| " cmake -Dprotobuf_BUILD_TESTS=OFF\n") |
| endif() |