|
|
|
option(protobuf_USE_EXTERNAL_GTEST "Use external Google Test (i.e. not the one in third_party/googletest)" OFF)
|
|
|
|
|
|
|
|
if (TARGET GTest::gmock)
|
|
|
|
# GTest is already present.
|
|
|
|
elseif (protobuf_USE_EXTERNAL_GTEST)
|
|
|
|
find_package(GTest REQUIRED CONFIG)
|
|
|
|
else ()
|
|
|
|
if (NOT protobuf_FETCH_DEPENDENCIES)
|
|
|
|
message(FATAL_ERROR
|
|
|
|
"Cannot find local googletest directory 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()
|
|
|
|
include(${protobuf_SOURCE_DIR}/cmake/dependencies.cmake)
|
|
|
|
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()
|