Browse Source

CMake: Fix googletest from source

pull/3816/head
Gleb Mazovetskiy 4 years ago committed by Anders Jenbo
parent
commit
0d21df3b81
  1. 2
      3rdParty/googletest/CMakeLists.txt
  2. 3
      CMake/Dependencies.cmake
  3. 6
      test/CMakeLists.txt

2
3rdParty/googletest/CMakeLists.txt vendored

@ -12,3 +12,5 @@ set(INSTALL_GTEST OFF)
set(gtest_force_shared_crt ON CACHE BOOL "" FORCE) set(gtest_force_shared_crt ON CACHE BOOL "" FORCE)
FetchContent_MakeAvailable(googletest) FetchContent_MakeAvailable(googletest)
add_library(GTest::gtest ALIAS gmock)

3
CMake/Dependencies.cmake

@ -153,6 +153,9 @@ if(BUILD_TESTING)
dependency_options("googletest" DEVILUTIONX_SYSTEM_GOOGLETEST ON DEVILUTIONX_STATIC_GOOGLETEST) dependency_options("googletest" DEVILUTIONX_SYSTEM_GOOGLETEST ON DEVILUTIONX_STATIC_GOOGLETEST)
if(DEVILUTIONX_SYSTEM_GOOGLETEST) if(DEVILUTIONX_SYSTEM_GOOGLETEST)
find_package(GTest REQUIRED) find_package(GTest REQUIRED)
if(NOT TARGET GTest::gtest)
add_library(GTest::gtest ALIAS GTest::GTest)
endif()
else() else()
add_subdirectory(3rdParty/googletest) add_subdirectory(3rdParty/googletest)
endif() endif()

6
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) set_target_properties(libdevilutionx_so PROPERTIES WINDOWS_EXPORT_ALL_SYMBOLS ON)
add_library(test_main STATIC main.cpp) add_library(test_main STATIC main.cpp)
target_link_libraries(test_main PRIVATE libdevilutionx_so ${GTEST_LIBRARIES}) target_link_libraries(test_main PUBLIC libdevilutionx_so GTest::gtest)
target_include_directories(test_main PRIVATE ${GTEST_INCLUDE_DIRS})
set(tests set(tests
animationinfo_test animationinfo_test
@ -38,8 +37,7 @@ set(tests
foreach(test_target ${tests}) foreach(test_target ${tests})
add_executable(${test_target} "${test_target}.cpp") add_executable(${test_target} "${test_target}.cpp")
gtest_discover_tests(${test_target}) gtest_discover_tests(${test_target})
target_link_libraries(${test_target} PRIVATE libdevilutionx_so ${GTEST_LIBRARIES} test_main) target_link_libraries(${test_target} PRIVATE test_main)
target_include_directories(${test_target} PRIVATE ${GTEST_INCLUDE_DIRS})
set_target_properties(${test_target} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${DevilutionX_BINARY_DIR}) set_target_properties(${test_target} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${DevilutionX_BINARY_DIR})
endforeach() endforeach()

Loading…
Cancel
Save