11
22ENABLE_TESTING ()
33
4- set (USE_GTEST_FROM "auto " CACHE STRING "Select GTest installation method" )
4+ set (USE_GTEST_FROM "source " CACHE STRING "Select GTest installation method" )
55set_property (CACHE USE_GTEST_FROM PROPERTY STRINGS "auto" "system" "source" )
66
77set (GTEST_DOWNLOAD_URL "https://github.com/google/googletest/releases/download/v1.15.2/googletest-1.15.2.tar.gz"
88 CACHE STRING "GTest download URL" )
99
1010
11- include (FindGTest)
1211include (FetchContent)
1312
13+ message (STATUS "GTest installation method: ${USE_GTEST_FROM} " )
14+
1415if (USE_GTEST_FROM STREQUAL "system" )
1516 find_package (GTest REQUIRED)
16- message (STATUS "GTest from system, ${GTEST_INCLUDE_DIRS} " )
1717elseif (USE_GTEST_FROM STREQUAL "auto" )
1818 find_package (GTest)
1919endif ()
2020
21- if (NOT GTest_FOUND)
21+ set (test_dependency_libs gtest gtest_main)
22+
23+ # DOWNLOAD_EXTRACT_TIMESTAMP
24+ if (POLICY CMP0135)
25+ cmake_policy (SET CMP0135 NEW)
26+ endif ()
27+
28+ if (GTest_FOUND)
29+ message (STATUS "GTest from system" )
30+ set (test_dependency_libs GTest::GTest GTest::Main)
31+ else ()
2232 message (STATUS "GTest not found, download fom ${GTEST_DOWNLOAD_URL} " )
2333 FetchContent_Declare(
2434 googletest
2535 URL ${GTEST_DOWNLOAD_URL}
26- DOWNLOAD_EXTRACT_TIMESTAMP ON
27- FIND_PACKAGE_ARGS NAMES GTest
36+ EXCLUDE_FROM_ALL
2837 )
2938 FetchContent_MakeAvailable(googletest)
30- message (STATUS "GTest from source, ${GTEST_INCLUDE_DIRS} " )
39+ message (STATUS "GTest from source" )
3140endif ()
3241
3342add_executable (test_gb32960_parser
@@ -40,6 +49,6 @@ target_include_directories(test_gb32960_parser PRIVATE
4049)
4150target_link_libraries (test_gb32960_parser PRIVATE
4251 gb32960-parser
43- ${GTEST_BOTH_LIBRARIES }
52+ ${test_dependency_libs }
4453)
4554
0 commit comments