]> git.ipfire.org Git - thirdparty/zlib-ng.git/commitdiff
Allow external gtest
authorVladislav Shchapov <vladislav@shchapov.ru>
Thu, 26 May 2022 18:39:04 +0000 (23:39 +0500)
committerHans Kristian Rosbach <hk-github@circlestorm.org>
Wed, 1 Jun 2022 09:56:53 +0000 (11:56 +0200)
Signed-off-by: Vladislav Shchapov <vladislav@shchapov.ru>
test/CMakeLists.txt

index 8b250ed780ba1981d68d08791e5fa4fd5f9893b6..fc06ce7ba02349051f087f1c36bc3d2a4a12d375 100644 (file)
@@ -18,35 +18,38 @@ if(WITH_SANITIZER STREQUAL "Memory")
     add_compile_options(-stdlib=libc++ -g)
 endif()
 
-# Prevent overriding the parent project's compiler/linker settings for Windows
-set(gtest_force_shared_crt ON CACHE BOOL
-    "Use shared (DLL) run-time lib even when Google Test is built as static lib." FORCE)
-# Disable pthreads for simplicity
-set(gtest_disable_pthreads ON CACHE BOOL
-    "Disable uses of pthreads in gtest." FORCE)
-
-# Allow specifying alternative Google test repository
-if(NOT DEFINED GTEST_REPOSITORY)
-    set(GTEST_REPOSITORY https://github.com/google/googletest.git)
-endif()
-if(NOT DEFINED GTEST_TAG)
-    # Use older version of Google test to support older versions of GCC
-    if (CMAKE_CXX_COMPILER_ID MATCHES "GNU" AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS_EQUAL 5.3)
-        set(GTEST_TAG release-1.10.0)
-    else()
-        set(GTEST_TAG release-1.11.0)
+if(NOT TARGET GTest::GTest)
+    # Prevent overriding the parent project's compiler/linker settings for Windows
+    set(gtest_force_shared_crt ON CACHE BOOL
+        "Use shared (DLL) run-time lib even when Google Test is built as static lib." FORCE)
+    # Disable pthreads for simplicity
+    set(gtest_disable_pthreads ON CACHE BOOL
+        "Disable uses of pthreads in gtest." FORCE)
+
+    # Allow specifying alternative Google test repository
+    if(NOT DEFINED GTEST_REPOSITORY)
+        set(GTEST_REPOSITORY https://github.com/google/googletest.git)
+    endif()
+    if(NOT DEFINED GTEST_TAG)
+        # Use older version of Google test to support older versions of GCC
+        if (CMAKE_CXX_COMPILER_ID MATCHES "GNU" AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS_EQUAL 5.3)
+            set(GTEST_TAG release-1.10.0)
+        else()
+            set(GTEST_TAG release-1.11.0)
+        endif()
     endif()
-endif()
 
-# Fetch Google test source code from official repository
-FetchContent_Declare(googletest
-    GIT_REPOSITORY ${GTEST_REPOSITORY}
-    GIT_TAG ${GTEST_TAG})
+    # Fetch Google test source code from official repository
+    FetchContent_Declare(googletest
+        GIT_REPOSITORY ${GTEST_REPOSITORY}
+        GIT_TAG ${GTEST_TAG})
 
-FetchContent_GetProperties(googletest)
-if(NOT googletest_POPULATED)
-    FetchContent_Populate(googletest)
-    add_subdirectory(${googletest_SOURCE_DIR} ${googletest_BINARY_DIR} EXCLUDE_FROM_ALL)
+    FetchContent_GetProperties(googletest)
+    if(NOT googletest_POPULATED)
+        FetchContent_Populate(googletest)
+        add_subdirectory(${googletest_SOURCE_DIR} ${googletest_BINARY_DIR} EXCLUDE_FROM_ALL)
+    endif()
+    add_library(GTest::GTest ALIAS gtest)
 endif()
 
 set(TEST_SRCS
@@ -95,7 +98,7 @@ if(WITH_SANITIZER STREQUAL "Memory")
         -fsanitize-memory-track-origins)
 endif()
 
-target_link_libraries(gtest_zlib zlibstatic gtest)
+target_link_libraries(gtest_zlib zlibstatic GTest::GTest)
 
 if(ZLIB_ENABLE_TESTS)
     add_test(NAME gtest_zlib