From c01b9916e705dc067d4e3d219ef60b49277353bd Mon Sep 17 00:00:00 2001 From: Adrian Imboden Date: Tue, 7 Apr 2020 02:50:57 +0200 Subject: [PATCH] Add option to use an externally provided GoogleTest target (for usage of abseil as add_subdirectory target) (#647) --- CMakeLists.txt | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index e94dcd3f..560f5b4b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -81,6 +81,9 @@ endif() ## pthread find_package(Threads REQUIRED) +option(ABSL_USE_EXTERNAL_GOOGLETEST + "If ON, abseil will assume that the targets for googletest are already provided by the including project folder. This makes sense when abseil is used with add_subproject." OFF) + option(ABSL_USE_GOOGLETEST_HEAD "If ON, abseil will download HEAD from googletest at config time." OFF) @@ -99,14 +102,15 @@ endif() ## check targets if(BUILD_TESTING) - - set(absl_gtest_build_dir ${CMAKE_BINARY_DIR}/googletest-build) - if(${ABSL_USE_GOOGLETEST_HEAD}) - set(absl_gtest_src_dir ${CMAKE_BINARY_DIR}/googletest-src) - else() - set(absl_gtest_src_dir ${ABSL_LOCAL_GOOGLETEST_DIR}) + if (NOT ABSL_USE_EXTERNAL_GOOGLETEST) + set(absl_gtest_build_dir ${CMAKE_BINARY_DIR}/googletest-build) + if(${ABSL_USE_GOOGLETEST_HEAD}) + set(absl_gtest_src_dir ${CMAKE_BINARY_DIR}/googletest-src) + else() + set(absl_gtest_src_dir ${ABSL_LOCAL_GOOGLETEST_DIR}) + endif() + include(CMake/Googletest/DownloadGTest.cmake) endif() - include(CMake/Googletest/DownloadGTest.cmake) check_target(gtest) check_target(gtest_main)