aboutsummaryrefslogtreecommitdiff
path: root/test/unit/CMakeLists.txt
diff options
context:
space:
mode:
Diffstat (limited to 'test/unit/CMakeLists.txt')
-rw-r--r--test/unit/CMakeLists.txt20
1 files changed, 18 insertions, 2 deletions
diff --git a/test/unit/CMakeLists.txt b/test/unit/CMakeLists.txt
index eb41a6c8..296f0bb4 100644
--- a/test/unit/CMakeLists.txt
+++ b/test/unit/CMakeLists.txt
@@ -1,11 +1,27 @@
# CMake configuration for PROJ unit tests
-option(USE_EXTERNAL_GTEST "Compile against external GTest" OFF)
+find_package(GTest 1.8.1)
+if(GTest_FOUND)
+ option(USE_EXTERNAL_GTEST "Compile against external GTest" ON)
+else()
+ option(USE_EXTERNAL_GTEST "Compile against external GTest" OFF)
+endif()
if(USE_EXTERNAL_GTEST)
+if(NOT GTest_FOUND)
+ message(FATAL_ERROR "External GTest >= 1.8.1 not found")
+endif()
message(STATUS "Using external GTest")
-find_package(GTest 1.8.1 CONFIG REQUIRED)
+
+# CMake < 3.20.0 uses GTest::GTest
+# CMake >= 3.20 uses GTest::gtest, and deprecates GTest::GTest
+# so for older CMake, create an alias from GTest::GTest to GTest::gtest
+if(NOT TARGET GTest::gtest)
+ add_library(GTest::gtest INTERFACE IMPORTED)
+ set_target_properties(GTest::gtest PROPERTIES
+ INTERFACE_LINK_LIBRARIES "GTest::GTest")
+endif()
else()