This is an automated email from the ASF dual-hosted git repository.

haonan pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/tsfile.git


The following commit(s) were added to refs/heads/develop by this push:
     new 1dbcdef1 [CPP] Support alternative gtest url (#179)
1dbcdef1 is described below

commit 1dbcdef102eedfa3aacd1d8f2a2307ace0a12a38
Author: Hongzhi Gao <[email protected]>
AuthorDate: Mon Jul 22 16:28:12 2024 +0800

    [CPP] Support alternative gtest url (#179)
---
 cpp/CMakeLists.txt      |  5 ++++-
 cpp/test/CMakeLists.txt | 43 ++++++++++++++++++++++++++++++++++++++-----
 2 files changed, 42 insertions(+), 6 deletions(-)

diff --git a/cpp/CMakeLists.txt b/cpp/CMakeLists.txt
index ebc1d440..afca5202 100644
--- a/cpp/CMakeLists.txt
+++ b/cpp/CMakeLists.txt
@@ -74,5 +74,8 @@ configure_file(
   "${PROJECT_BINARY_DIR}/cmake_config.h"
 )
 
+set(TESTS_ENABLED OFF)
 add_subdirectory(test)
-add_dependencies(TsFile_Test tsfile)
\ No newline at end of file
+if(TESTS_ENABLED)
+    add_dependencies(TsFile_Test tsfile)
+endif()
\ No newline at end of file
diff --git a/cpp/test/CMakeLists.txt b/cpp/test/CMakeLists.txt
index fc9469c3..91fa71c5 100644
--- a/cpp/test/CMakeLists.txt
+++ b/cpp/test/CMakeLists.txt
@@ -17,12 +17,45 @@ specific language governing permissions and limitations
 under the License.
 ]]
 include(FetchContent)
-FetchContent_Declare(
-  googletest
-  URL https://github.com/google/googletest/archive/refs/tags/v1.12.0.zip
+
+set(URL_LIST
+    "https://github.com/google/googletest/archive/refs/tags/release-1.12.1.zip";
+    
"https://hub.nuaa.cf/google/googletest/archive/refs/tags/release-1.12.1.zip";
+    
"https://hub.yzuu.cf/google/googletest/archive/refs/tags/release-1.12.1.zip";
 )
-set(gtest_force_shared_crt ON CACHE BOOL "" FORCE)
-FetchContent_MakeAvailable(googletest)
+
+set(DOWNLOADED 0)
+set(GTEST_URL "")
+set(TIMEOUT 30)
+
+foreach(URL ${URL_LIST})
+    message(STATUS "Trying to download from ${URL}")
+    file(DOWNLOAD ${URL} "${CMAKE_BINARY_DIR}/googletest-release-1.12.1.zip" 
STATUS DOWNLOAD_STATUS TIMEOUT ${TIMEOUT})
+
+    list(GET DOWNLOAD_STATUS 0 DOWNLOAD_RESULT)
+    if(${DOWNLOAD_RESULT} EQUAL 0)
+        set(DOWNLOADED 1)
+        set(GTEST_URL ${URL})
+        break()
+    endif()
+endforeach()
+
+if(${DOWNLOADED})
+    message(STATUS "Successfully downloaded googletest from ${GTEST_URL}")
+    FetchContent_Declare(
+      googletest
+      URL ${GTEST_URL}
+    )
+    set(gtest_force_shared_crt ON CACHE BOOL "" FORCE)
+    FetchContent_MakeAvailable(googletest)
+    set(TESTS_ENABLED ON PARENT_SCOPE)
+else()
+    message(WARNING "Failed to download googletest from all provided URLs, 
setting TESTS_ENABLED to OFF")
+    set(TESTS_ENABLED OFF PARENT_SCOPE)
+    return()
+endif()
+
+message(STATUS "Adding test configurations...")
 
 set(SDK_INCLUDE_DIR ${PROJECT_SOURCE_DIR}/../src)
 message("SDK_INCLUDE_DIR: ${SDK_INCLUDE_DIR}")

Reply via email to