From f80136bbba68c628b4f43433e65b0a7403321f7c Mon Sep 17 00:00:00 2001 From: saadrahim <44449863+saadrahim@users.noreply.github.com> Date: Wed, 15 Jul 2020 20:51:48 -0600 Subject: [PATCH] Changing GTest inclusion in cmake to use find_package (#234) * GTest is used via find_package. No longer downloaded in cmake. * Adding error handling [ROCm/rccl commit: 99a491273f4ebb81696c7a5904eacf7626d6eee6] --- projects/rccl/test/CMakeLists.txt | 29 +++++----------------------- projects/rccl/test/CMakeLists.txt.in | 15 -------------- 2 files changed, 5 insertions(+), 39 deletions(-) delete mode 100644 projects/rccl/test/CMakeLists.txt.in diff --git a/projects/rccl/test/CMakeLists.txt b/projects/rccl/test/CMakeLists.txt index 71d00c0f02..b00bb5d602 100644 --- a/projects/rccl/test/CMakeLists.txt +++ b/projects/rccl/test/CMakeLists.txt @@ -11,31 +11,12 @@ if(BUILD_TESTS) message(FATAL_ERROR "chrpath is required for UnitTests. Please install (e.g. sudo apt-get install chrpath)") endif() - # Download and unpack googletest at configure time - configure_file(CMakeLists.txt.in googletest-download/CMakeLists.txt) - execute_process( - COMMAND ${CMAKE_COMMAND} -G "${CMAKE_GENERATOR}" . - RESULT_VARIABLE result - WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/googletest-download) - if(result) - message(FATAL_ERROR "CMake step for googletest failed: ${result}") - endif() - execute_process( - COMMAND ${CMAKE_COMMAND} --build . - RESULT_VARIABLE result - WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/googletest-download) - if(result) - message(FATAL_ERROR "Build step for googletest failed: ${result}") + find_package(GTest REQUIRED) + if (NOT GTest_FOUND) + message(FATAL_ERROR "Please ensure GTest is installed on the system") endif() - # Add googletest directly to our build. This adds the following targets: - # gtest, gtest_main, gmock and gmock_main - add_subdirectory("${CMAKE_BINARY_DIR}/googletest-src" - "${CMAKE_BINARY_DIR}/googletest-build") - - # Add googletest directly to our build. This defines the gtest and gtest_main - # targets. add_subdirectory(${CMAKE_CURRENT_BINARY_DIR}/googletest-src - # ${CMAKE_CURRENT_BINARY_DIR}/googletest-build EXCLUDE_FROM_ALL) + include_directories(${GTEST_INCLUDE_DIR}) # Collect source files for tests set(TEST_SOURCES @@ -55,7 +36,7 @@ if(BUILD_TESTS) add_executable(UnitTests ${TEST_SOURCES}) target_include_directories(UnitTests PRIVATE /opt/rocm) - target_link_libraries(UnitTests PRIVATE gtest_main PRIVATE rccl) + target_link_libraries(UnitTests PRIVATE ${GTEST_LIBRARY} ${GTEST_MAIN_LIBRARY} PRIVATE rccl) else() message("Not building unit tests") endif() diff --git a/projects/rccl/test/CMakeLists.txt.in b/projects/rccl/test/CMakeLists.txt.in deleted file mode 100644 index af8783aad6..0000000000 --- a/projects/rccl/test/CMakeLists.txt.in +++ /dev/null @@ -1,15 +0,0 @@ -cmake_minimum_required(VERSION 2.8.2) - -project(googletest-download NONE) - -include(ExternalProject) -ExternalProject_Add(googletest - GIT_REPOSITORY https://github.com/google/googletest.git - GIT_TAG release-1.8.1 - SOURCE_DIR "${CMAKE_BINARY_DIR}/googletest-src" - BINARY_DIR "${CMAKE_BINARY_DIR}/googletest-build" - CONFIGURE_COMMAND "" - BUILD_COMMAND "" - INSTALL_COMMAND "" - TEST_COMMAND "" -)