From aa0870b4a18ab9751d5c91140650a4ecad7bc908 Mon Sep 17 00:00:00 2001 From: Stephan Hageboeck Date: Tue, 24 Jun 2025 13:38:13 +0200 Subject: [PATCH] Make CppInterOp work with new gtest target names. Starting from CMake v3.23, one can use GTest::gtest and similar in CMake. Since the root-project wants to move to these targets, Interop should work with both the new or the old target names in order not to start building its own gtest. --- unittests/CMakeLists.txt | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/unittests/CMakeLists.txt b/unittests/CMakeLists.txt index 0ea65be87..f13b85f68 100644 --- a/unittests/CMakeLists.txt +++ b/unittests/CMakeLists.txt @@ -3,16 +3,23 @@ set(CTEST_BUILD_NAME enable_testing() # LLVM builds (not installed llvm) provides gtest. -if (NOT TARGET gtest) +if (NOT TARGET GTest::gtest AND NOT TARGET gtest) include(GoogleTest) endif() if(EMSCRIPTEN) - set(gtest_libs gtest gmock) + if (TARGET GTest::gtest) + # Target names in CMake >= v3.23 + set(gtest_libs GTest::gtest GTest::gmock) + else() + set(gtest_libs gtest gmock) + endif() else() - set(gtest_libs gtest gtest_main) - if (TARGET gmock) - list(APPEND gtest_libs gmock gmock_main) + if (TARGET GTest::gtest) + # Target names in CMake >= v3.23 + set(gtest_libs GTest::gtest GTest::gmock GTest::gtest_main) + else() + set(gtest_libs gtest gtest_main gmock) endif() set(link_pthreads_lib pthread) endif()