From 259f944bc3e45420f5891737101260f07ab3030a Mon Sep 17 00:00:00 2001 From: "Azamat H. Hackimov" Date: Tue, 27 Feb 2018 14:17:49 +0500 Subject: [PATCH] Externalize googletest project Externalize gtest to avoid installation, fixes #539. --- test/CMakeLists.txt | 35 ++++++++++++++++++++++++++--------- 1 file changed, 26 insertions(+), 9 deletions(-) diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 3633da5..7b39dd4 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -1,16 +1,27 @@ +include(ExternalProject) + +ExternalProject_Add( + googletest_project + SOURCE_DIR "${CMAKE_SOURCE_DIR}/test/gtest-1.8.0" + INSTALL_DIR "${CMAKE_BINARY_DIR}/prefix" + CMAKE_ARGS -DCMAKE_INSTALL_PREFIX:PATH= -DBUILD_GMOCK=ON +) + +add_library(gmock UNKNOWN IMPORTED) +set_target_properties(gmock PROPERTIES + IMPORTED_LOCATION ${PROJECT_BINARY_DIR}/prefix/lib/libgmock.a +) + +find_package(Threads) + +include_directories(SYSTEM "${PROJECT_BINARY_DIR}/prefix/include") + set(gtest_force_shared_crt ${MSVC_SHARED_RT} CACHE BOOL "Use shared (DLL) run-time lib even when Google Test built as a static lib.") -add_subdirectory(gtest-1.8.0) -include_directories(SYSTEM gtest-1.8.0/googlemock/include) -include_directories(SYSTEM gtest-1.8.0/googletest/include) - -if(WIN32 AND BUILD_SHARED_LIBS) - add_definitions("-DGTEST_LINKED_AS_SHARED_LIBRARY") -endif() if(CMAKE_CXX_COMPILER_ID MATCHES "GNU" OR CMAKE_CXX_COMPILER_ID MATCHES "Clang") - set(yaml_test_flags "-Wno-variadic-macros -Wno-sign-compare") + set(yaml_test_flags "-Wno-variadic-macros -Wno-sign-compare") if(CMAKE_CXX_COMPILER_ID MATCHES "Clang") set(yaml_test_flags "${yaml_test_flags} -Wno-c99-extensions") @@ -36,9 +47,15 @@ add_executable(run-tests ${test_sources} ${test_headers} ) + +add_dependencies(run-tests googletest_project) + set_target_properties(run-tests PROPERTIES COMPILE_FLAGS "${yaml_c_flags} ${yaml_cxx_flags} ${yaml_test_flags}" ) -target_link_libraries(run-tests yaml-cpp gmock) +target_link_libraries(run-tests + yaml-cpp + gmock + ${CMAKE_THREAD_LIBS_INIT}) add_test(yaml-test ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/run-tests) -- 2.16.1