From 0d21df3b81c0fd4f41866ab41497a02101bc0508 Mon Sep 17 00:00:00 2001 From: Gleb Mazovetskiy Date: Tue, 21 Dec 2021 06:17:10 +0000 Subject: [PATCH] CMake: Fix googletest from source --- 3rdParty/googletest/CMakeLists.txt | 2 ++ CMake/Dependencies.cmake | 3 +++ test/CMakeLists.txt | 6 ++---- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/3rdParty/googletest/CMakeLists.txt b/3rdParty/googletest/CMakeLists.txt index 1716e0cea..e8fa5d33b 100644 --- a/3rdParty/googletest/CMakeLists.txt +++ b/3rdParty/googletest/CMakeLists.txt @@ -12,3 +12,5 @@ set(INSTALL_GTEST OFF) set(gtest_force_shared_crt ON CACHE BOOL "" FORCE) FetchContent_MakeAvailable(googletest) + +add_library(GTest::gtest ALIAS gmock) diff --git a/CMake/Dependencies.cmake b/CMake/Dependencies.cmake index 394ee6865..f75741aec 100644 --- a/CMake/Dependencies.cmake +++ b/CMake/Dependencies.cmake @@ -153,6 +153,9 @@ if(BUILD_TESTING) dependency_options("googletest" DEVILUTIONX_SYSTEM_GOOGLETEST ON DEVILUTIONX_STATIC_GOOGLETEST) if(DEVILUTIONX_SYSTEM_GOOGLETEST) find_package(GTest REQUIRED) + if(NOT TARGET GTest::gtest) + add_library(GTest::gtest ALIAS GTest::GTest) + endif() else() add_subdirectory(3rdParty/googletest) endif() diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 2a50ec461..e0bf0dd54 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -7,8 +7,7 @@ target_include_directories(libdevilutionx_so INTERFACE "${DevilutionX_SOURCE_DIR set_target_properties(libdevilutionx_so PROPERTIES WINDOWS_EXPORT_ALL_SYMBOLS ON) add_library(test_main STATIC main.cpp) -target_link_libraries(test_main PRIVATE libdevilutionx_so ${GTEST_LIBRARIES}) -target_include_directories(test_main PRIVATE ${GTEST_INCLUDE_DIRS}) +target_link_libraries(test_main PUBLIC libdevilutionx_so GTest::gtest) set(tests animationinfo_test @@ -38,8 +37,7 @@ set(tests foreach(test_target ${tests}) add_executable(${test_target} "${test_target}.cpp") gtest_discover_tests(${test_target}) - target_link_libraries(${test_target} PRIVATE libdevilutionx_so ${GTEST_LIBRARIES} test_main) - target_include_directories(${test_target} PRIVATE ${GTEST_INCLUDE_DIRS}) + target_link_libraries(${test_target} PRIVATE test_main) set_target_properties(${test_target} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${DevilutionX_BINARY_DIR}) endforeach()