From 6d1df77b261e48c80f77db81dc2ad166876657a7 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 3 Dec 2025 08:27:02 +0000 Subject: [PATCH 1/3] Initial plan From e59f91d5d555fb7215fd33f00c2db56a667d8f63 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 3 Dec 2025 08:31:26 +0000 Subject: [PATCH 2/3] Prefer find_package(GTest) over FetchContent, add CSR4MPI_FORCE_FETCH_GTEST option Co-authored-by: deltaeecs <48714525+deltaeecs@users.noreply.github.com> --- CMakeLists.txt | 27 ++++++++++++++++++++------- 1 file changed, 20 insertions(+), 7 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 63fa4a4..273cd2c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -10,16 +10,29 @@ set(CMAKE_CXX_STANDARD_REQUIRED ON) add_subdirectory(src) -include(FetchContent) +# GTest discovery: prefer system find_package, fallback to FetchContent +option(CSR4MPI_FORCE_FETCH_GTEST "Force FetchContent for GoogleTest instead of find_package" OFF) -FetchContent_Declare( - googletest - URL https://github.com/google/googletest/archive/refs/tags/v1.15.2.zip -) +if(NOT CSR4MPI_FORCE_FETCH_GTEST) + find_package(GTest QUIET) +endif() -set(gtest_force_shared_crt ON CACHE BOOL "" FORCE) +if(GTest_FOUND) + message(STATUS "Using system GTest via find_package") +else() + message(STATUS "GTest not found via find_package, using FetchContent") + include(FetchContent) -FetchContent_MakeAvailable(googletest) + FetchContent_Declare( + googletest + URL https://github.com/google/googletest/archive/refs/tags/v1.15.2.zip + DOWNLOAD_EXTRACT_TIMESTAMP TRUE + ) + + set(gtest_force_shared_crt ON CACHE BOOL "" FORCE) + + FetchContent_MakeAvailable(googletest) +endif() include(CTest) enable_testing() From 23227fb4b1e16ecd34c80049e05fa7a1e54aee6b Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 3 Dec 2025 08:32:38 +0000 Subject: [PATCH 3/3] Fix code review: check both GTest_FOUND and GTEST_FOUND for compatibility Co-authored-by: deltaeecs <48714525+deltaeecs@users.noreply.github.com> --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 273cd2c..962946d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -17,7 +17,7 @@ if(NOT CSR4MPI_FORCE_FETCH_GTEST) find_package(GTest QUIET) endif() -if(GTest_FOUND) +if(GTest_FOUND OR GTEST_FOUND) message(STATUS "Using system GTest via find_package") else() message(STATUS "GTest not found via find_package, using FetchContent")