diff --git a/CMakeLists.txt b/CMakeLists.txt index c280742..d9f8ad2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -13,25 +13,6 @@ include(GNUInstallDirs) set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake) -##---------------------------------------------------------------------------## -# Download and unpack googletest -##---------------------------------------------------------------------------## -include(FetchContent) -FetchContent_Declare( - googletest - GIT_REPOSITORY https://github.com/google/googletest.git - GIT_TAG release-1.10.0 -) -FetchContent_GetProperties(googletest) -if(NOT googletest_POPULATED) - FetchContent_Populate(googletest) - add_subdirectory(${googletest_SOURCE_DIR} ${googletest_BINARY_DIR}) -endif() - -# Prevent GoogleTest from overriding our compiler/linker options -# when building with Visual Studio -set(gtest_force_shared_crt ON CACHE BOOL "" FORCE) - ##---------------------------------------------------------------------------## # Set up main options (inherit from Kokkos and Cabana CMake) ##---------------------------------------------------------------------------## @@ -71,6 +52,16 @@ add_subdirectory(bin) ##---------------------------------------------------------------------------## option(CabanaMD_ENABLE_TESTING "Build tests" OFF) if(CabanaMD_ENABLE_TESTING) + find_package(GTest 1.10 REQUIRED) + # Workaround for FindGTest module in CMake older than 3.20 + if(TARGET GTest::gtest) + set(gtest_target GTest::gtest) + elseif(TARGET GTest::GTest) + set(gtest_target GTest::GTest) + else() + message(FATAL_ERROR "bug in GTest find module workaround") + endif() + enable_testing() add_subdirectory(unit_test) endif() diff --git a/unit_test/CMakeLists.txt b/unit_test/CMakeLists.txt index 7da1462..67f0d71 100644 --- a/unit_test/CMakeLists.txt +++ b/unit_test/CMakeLists.txt @@ -1,5 +1,3 @@ -set(gtest_args --gtest_color=yes) - ##--------------------------------------------------------------------------## ## On-node tests ##--------------------------------------------------------------------------## @@ -30,7 +28,7 @@ macro(CabanaMD_add_tests) set(_target ${_test}_test_${_uppercase_device}) add_executable(${_target} ${_file} ${CABANAMD_UNIT_TEST_MAIN}) target_include_directories(${_target} PRIVATE ${_dir} ${CMAKE_CURRENT_SOURCE_DIR}) - target_link_libraries(${_target} PRIVATE CabanaMD gtest CabanaMD) + target_link_libraries(${_target} PRIVATE CabanaMD ${gtest_target} CabanaMD) foreach(_np ${CABANAMD_UNIT_TEST_MPIEXEC_NUMPROCS}) if(_device STREQUAL PTHREAD OR _device STREQUAL OPENMP)