| From 259f944bc3e45420f5891737101260f07ab3030a Mon Sep 17 00:00:00 2001 |
| From: "Azamat H. Hackimov" <azamat.hackimov@gmail.com> |
| 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=<INSTALL_DIR> -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 |
| |