Remove external cmake project for gtest

Now only build tests if a gtest installation already exists on the system. This should expedite time to build for users that do not care about building/running unit tests and also eliminates the need for internet access when building.
This commit is contained in:
Jacob Perron 2018-04-19 13:49:38 -07:00
parent ec61febe20
commit 08da39e16e
3 changed files with 10 additions and 50 deletions

View file

@ -157,40 +157,15 @@ install(
###########
if(LIBCREATE_BUILD_TESTS)
find_package(GTest)
include_directories(${GTEST_INCLUDE_DIRS})
endif()
if(LIBCREATE_BUILD_TESTS AND ${GTEST_FOUND})
message("GTest installation found. Building tests.")
enable_testing()
# 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 GTEST_DOWNLOAD_RESULT
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/googletest-download
)
if(GTEST_DOWNLOAD_RESULT)
message(FATAL_ERROR "CMake step for googletest failed: ${GTEST_DOWNLOAD_RESULT}")
endif()
# Build googletest
execute_process(COMMAND ${CMAKE_COMMAND} --build .
RESULT_VARIABLE GTEST_BUILD_RESULT
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/googletest-download
)
if(GTEST_BUILD_RESULT)
message(FATAL_ERROR "Build step for googletest failed: ${GTEST_BUILD_RESULT}")
endif()
# Add googletest directly to our build. This defines the gtest and gtest_main targets.
add_subdirectory(${CMAKE_BINARY_DIR}/googletest-src
${CMAKE_BINARY_DIR}/googletest-build)
# The gtest/gtest_main targets carry header search path
# dependencies automatically when using CMake 2.8.11 or
# later. Otherwise we have to add them here ourselves.
if (CMAKE_VERSION VERSION_LESS 2.8.11)
include_directories("${gtest_SOURCE_DIR}/include")
endif()
# Add tests
set(LIBCREATE_TESTS
test_create
@ -205,8 +180,8 @@ if(LIBCREATE_BUILD_TESTS)
add_executable(${LIBCREATE_TEST} tests/${LIBCREATE_TEST}.cpp)
target_link_libraries(${LIBCREATE_TEST}
# ${Boost_LIBRARIES}
${LIBRARY_NAME}
${GTEST_LIBRARIES}
gtest_main
)
@ -215,4 +190,6 @@ if(LIBCREATE_BUILD_TESTS)
COMMAND ${LIBCREATE_TEST}
)
endforeach()
else()
message("No GTest installation found. Skipping tests.")
endif()

View file

@ -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 master
SOURCE_DIR "${CMAKE_BINARY_DIR}/googletest-src"
BINARY_DIR "${CMAKE_BINARY_DIR}/googletest-build"
CONFIGURE_COMMAND ""
BUILD_COMMAND ""
INSTALL_COMMAND ""
TEST_COMMAND ""
)

View file

@ -16,8 +16,6 @@
<buildtool_depend>cmake</buildtool_depend>
<build_depend>git</build_depend>
<depend>boost</depend>
<exec_depend>catkin</exec_depend>