fixes #1688 protect make debug-test from gtest

In simple terms, add_subdirectory() is replaced with ExternalProject_Add().

This change is inspired by https://crascit.com/2015/07/25/cmake-gtest/
with one difference, no download, using the source we already have.

Before this change, make debug-test must be preceded by make clean.
Otherwise, a subsequent build would be polluted by cmake options made
by tests/gtest/.

Also removed the changed compiler flags.  My test build did not have
the affected warnings.
This commit is contained in:
Timothy D. Prime 2017-02-08 12:38:41 -08:00
parent 99ee3fd17e
commit 32d7d04858

View File

@ -43,24 +43,30 @@ if (GTest_FOUND)
include_directories(SYSTEM ${GTEST_INCLUDE_DIRS}) include_directories(SYSTEM ${GTEST_INCLUDE_DIRS})
else () else ()
message(STATUS "GTest not found on the system: will use GTest bundled with this source") message(STATUS "GTest not found on the system: will use GTest bundled with this source")
add_subdirectory(gtest)
include_directories(SYSTEM "${gtest_SOURCE_DIR}/include" "${gtest_SOURCE_DIR}") include(ExternalProject)
ExternalProject_Add(googletest
SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/gtest
BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}/gtest
DOWNLOAD_COMMAND ""
UPDATE_COMMAND ""
INSTALL_COMMAND ""
)
add_library(gtest UNKNOWN IMPORTED)
add_library(gtest_main UNKNOWN IMPORTED)
set_target_properties(gtest PROPERTIES
IMPORTED_LOCATION ${CMAKE_CURRENT_BINARY_DIR}/gtest/libgtest.a
)
set_target_properties(gtest_main PROPERTIES
IMPORTED_LOCATION ${CMAKE_CURRENT_BINARY_DIR}/gtest/libgtest_main.a
)
add_dependencies(gtest googletest)
add_dependencies(gtest_main googletest)
# Emulate the FindGTest module's variable. # Emulate the FindGTest module's variable.
set(GTEST_LIBRARIES gtest) set(GTEST_LIBRARIES gtest gtest_main)
include_directories(SYSTEM "${CMAKE_CURRENT_SOURCE_DIR}/gtest/include")
# Ignore some warnings when building gtest binaries. endif (GTest_FOUND)
if(NOT MSVC)
set_property(TARGET gtest
APPEND_STRING
PROPERTY
COMPILE_FLAGS " -Wno-undef -Wno-sign-compare")
endif()
set_property(TARGET gtest
PROPERTY
FOLDER "${folder}")
endif ()
file(COPY file(COPY
data/wallet_9svHk1.keys data/wallet_9svHk1.keys