From e3efedd7394a01e6c8511f6ac215e822d6fc5b62 Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Tue, 1 Feb 2022 15:22:26 +0100 Subject: [PATCH] Use external gtest by default when detected --- .github/workflows/clang_linux/start.sh | 2 +- test/unit/CMakeLists.txt | 20 ++++++++++++++++++-- 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/.github/workflows/clang_linux/start.sh b/.github/workflows/clang_linux/start.sh index 3cb07c44f7..b0a5ac34cc 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 eb41a6c89b..296f0bb4b2 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()