From 77f390694fbfd8b9069a98166b97d43e13fd8c2c Mon Sep 17 00:00:00 2001 From: Marcus Holland-Moritz Date: Wed, 2 Aug 2023 17:53:10 +0200 Subject: [PATCH] Use FetchContent to build googletest --- CMakeLists.txt | 36 ++++++++---------------------------- CMakeLists.txt.gtest | 21 --------------------- 2 files changed, 8 insertions(+), 49 deletions(-) delete mode 100644 CMakeLists.txt.gtest diff --git a/CMakeLists.txt b/CMakeLists.txt index d2db273f..44a19db3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -331,34 +331,14 @@ set(ZSTD_LIBRARY_DEBUG if(WITH_TESTS) if(NOT PREFER_SYSTEM_GTEST) - # Download and unpack googletest at configure time - configure_file(CMakeLists.txt.gtest googletest-download/CMakeLists.txt) - execute_process( - COMMAND ${CMAKE_COMMAND} -G "${CMAKE_GENERATOR}" . - RESULT_VARIABLE result - WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/googletest-download) - if(result) - message(FATAL_ERROR "CMake step for googletest failed: ${result}") - endif() - execute_process( - COMMAND ${CMAKE_COMMAND} --build . - RESULT_VARIABLE result - WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/googletest-download) - if(result) - message(FATAL_ERROR "Build step for googletest failed: ${result}") - endif() - - # 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( - ${CMAKE_CURRENT_BINARY_DIR}/googletest-src - ${CMAKE_CURRENT_BINARY_DIR}/googletest-build EXCLUDE_FROM_ALL SYSTEM) + include(FetchContent) + FetchContent_Declare( + googletest + URL https://github.com/google/googletest/archive/refs/tags/v1.13.0.zip + ) + # For Windows: Prevent overriding the parent project's compiler/linker settings + set(gtest_force_shared_crt ON CACHE BOOL "" FORCE) + FetchContent_MakeAvailable(googletest) endif() enable_testing() diff --git a/CMakeLists.txt.gtest b/CMakeLists.txt.gtest deleted file mode 100644 index 334f01e1..00000000 --- a/CMakeLists.txt.gtest +++ /dev/null @@ -1,21 +0,0 @@ -cmake_minimum_required(VERSION 2.8.11) - -project(googletest-download NONE) - -include(ExternalProject) - -ExternalProject_Add( - googletest - GIT_REPOSITORY ${GOOGLETEST_GIT_REPO} - GIT_TAG main - PREFIX "${CMAKE_CURRENT_BINARY_DIR}/googletest" - SOURCE_DIR "${CMAKE_CURRENT_BINARY_DIR}/googletest-src" - BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}/googletest-build" - CMAKE_ARGS -DCMAKE_C_COMPILER_LAUNCHER=${CMAKE_C_COMPILER_LAUNCHER} - -DCMAKE_CXX_COMPILER_LAUNCHER=${CMAKE_CXX_COMPILER_LAUNCHER} - -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} - CONFIGURE_COMMAND "" - BUILD_COMMAND "" - INSTALL_COMMAND "" - TEST_COMMAND "" -)