summaryrefslogtreecommitdiff
path: root/src/third_party/abseil-cpp-master/abseil-cpp/CMake/Googletest/DownloadGTest.cmake
diff options
context:
space:
mode:
authorBilly Donahue <billy.donahue@mongodb.com>2021-07-02 16:49:37 -0400
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2021-12-10 21:43:34 +0000
commit3845b16f0476ef8ea577b8eb09e34f23c76391f0 (patch)
tree26576a553feaa17fb345bebe555df66fb3138084 /src/third_party/abseil-cpp-master/abseil-cpp/CMake/Googletest/DownloadGTest.cmake
parent68aa95b1062bfd64b772836747304d9e3eca1476 (diff)
downloadmongo-3845b16f0476ef8ea577b8eb09e34f23c76391f0.tar.gz
SERVER-51476 upgrade to Abseil 20210324.1
(cherry picked from commit defbe4582778e3da3abdc23c73ef7639543ab380)
Diffstat (limited to 'src/third_party/abseil-cpp-master/abseil-cpp/CMake/Googletest/DownloadGTest.cmake')
-rw-r--r--src/third_party/abseil-cpp-master/abseil-cpp/CMake/Googletest/DownloadGTest.cmake41
1 files changed, 41 insertions, 0 deletions
diff --git a/src/third_party/abseil-cpp-master/abseil-cpp/CMake/Googletest/DownloadGTest.cmake b/src/third_party/abseil-cpp-master/abseil-cpp/CMake/Googletest/DownloadGTest.cmake
new file mode 100644
index 00000000000..9d071c91701
--- /dev/null
+++ b/src/third_party/abseil-cpp-master/abseil-cpp/CMake/Googletest/DownloadGTest.cmake
@@ -0,0 +1,41 @@
+# Integrates googletest at configure time. Based on the instructions at
+# https://github.com/google/googletest/tree/master/googletest#incorporating-into-an-existing-cmake-project
+
+# Set up the external googletest project, downloading the latest from Github
+# master if requested.
+configure_file(
+ ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt.in
+ ${CMAKE_BINARY_DIR}/googletest-external/CMakeLists.txt
+)
+
+set(ABSL_SAVE_CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS})
+set(ABSL_SAVE_CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY})
+if (BUILD_SHARED_LIBS)
+ set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DGTEST_CREATE_SHARED_LIBRARY=1")
+endif()
+
+# Configure and build the googletest source.
+execute_process(COMMAND ${CMAKE_COMMAND} -G "${CMAKE_GENERATOR}" .
+ RESULT_VARIABLE result
+ WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/googletest-external )
+if(result)
+ message(FATAL_ERROR "CMake step for googletest failed: ${result}")
+endif()
+
+execute_process(COMMAND ${CMAKE_COMMAND} --build .
+ RESULT_VARIABLE result
+ WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/googletest-external)
+if(result)
+ message(FATAL_ERROR "Build step for googletest failed: ${result}")
+endif()
+
+set(CMAKE_CXX_FLAGS ${ABSL_SAVE_CMAKE_CXX_FLAGS})
+set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${ABSL_SAVE_CMAKE_RUNTIME_OUTPUT_DIRECTORY})
+
+# Prevent overriding the parent project's compiler/linker settings on Windows
+set(gtest_force_shared_crt ON CACHE BOOL "" FORCE)
+
+# Add googletest directly to our build. This defines the gtest and gtest_main
+# targets.
+add_subdirectory(${absl_gtest_src_dir} ${absl_gtest_build_dir} EXCLUDE_FROM_ALL)