aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-x.github/workflows/clang_linux/start.sh2
-rw-r--r--test/unit/CMakeLists.txt20
2 files changed, 19 insertions, 3 deletions
diff --git a/.github/workflows/clang_linux/start.sh b/.github/workflows/clang_linux/start.sh
index 3cb07c44..b0a5ac34 100755
--- a/.github/workflows/clang_linux/start.sh
+++ b/.github/workflows/clang_linux/start.sh
@@ -5,7 +5,7 @@ set -e
apt-get update -y
DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
sudo autoconf automake libtool clang++-10 python3-clang-10 make cmake ccache pkg-config tar zip \
- sqlite3 libsqlite3-dev libtiff-dev libcurl4-openssl-dev jq python3-pip nlohmann-json3-dev
+ sqlite3 libsqlite3-dev libtiff-dev libcurl4-openssl-dev jq python3-pip nlohmann-json3-dev libgtest-dev
python3 -m pip install --user jsonschema
export PATH=$HOME/.local/bin:$PATH
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()