|
|
|
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()
|