From c3664973a94a2c715b9c57583f5953483caf2cce Mon Sep 17 00:00:00 2001 From: Gil Date: Wed, 17 Jan 2018 10:22:57 -0800 Subject: Simplify integration with googletest (#672) This makes it possible to build the Firestore subproject with CLion because it no longer needs to be told where googletest is. --- Firestore/CMakeLists.txt | 18 +++++++++++++++++- cmake/external/firestore.cmake | 1 - cmake/external/googletest.cmake | 24 +++--------------------- 3 files changed, 20 insertions(+), 23 deletions(-) diff --git a/Firestore/CMakeLists.txt b/Firestore/CMakeLists.txt index 553f59c..499e06c 100644 --- a/Firestore/CMakeLists.txt +++ b/Firestore/CMakeLists.txt @@ -28,7 +28,23 @@ set(FIREBASE_INSTALL_DIR ${CMAKE_INSTALL_PREFIX}) list(INSERT CMAKE_MODULE_PATH 0 ${FIREBASE_SOURCE_DIR}/cmake) include(utils) -find_package(GTest REQUIRED) +# Include GoogleTest directly in the build. +set(gtest_dir ${FIREBASE_INSTALL_DIR}/external/googletest) +add_subdirectory( + ${gtest_dir}/src/googletest + ${gtest_dir}/src/googletest-build + EXCLUDE_FROM_ALL +) + +# Set up aliases with the same names as available via FindGTest. +add_library( + GTest::GTest ALIAS gtest +) + +add_library( + GTest::Main ALIAS gtest_main +) + find_package(LevelDB REQUIRED) find_package(GRPC REQUIRED) diff --git a/cmake/external/firestore.cmake b/cmake/external/firestore.cmake index 2d0ef02..1a89435 100644 --- a/cmake/external/firestore.cmake +++ b/cmake/external/firestore.cmake @@ -31,7 +31,6 @@ ExternalProject_Add( CMAKE_ARGS -DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE} -DCMAKE_INSTALL_PREFIX:PATH=${FIREBASE_INSTALL_DIR} - ${GTEST_CMAKE_ARGS} BUILD_ALWAYS ON diff --git a/cmake/external/googletest.cmake b/cmake/external/googletest.cmake index c467b70..56a5f13 100644 --- a/cmake/external/googletest.cmake +++ b/cmake/external/googletest.cmake @@ -30,27 +30,9 @@ ExternalProject_Add( PREFIX ${PROJECT_BINARY_DIR}/external/googletest - CMAKE_ARGS - -DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE} - -DBUILD_SHARED_LIBS:BOOL=OFF - + # Just download the sources without building. + CONFIGURE_COMMAND "" + BUILD_COMMAND "" INSTALL_COMMAND "" TEST_COMMAND "" ) - -ExternalProject_Get_Property( - googletest - SOURCE_DIR BINARY_DIR -) - -# Arguments to pass to another CMake invocation so that it can find googletest -# without installing it using the standard FindGTest module. -set(GTEST_INCLUDE_DIR ${SOURCE_DIR}/googletest/include) -set(GTEST_LIBRARY ${BINARY_DIR}/googlemock/gtest/libgtest.a) -set(GTEST_MAIN_LIBRARY ${BINARY_DIR}/googlemock/gtest/libgtest_main.a) -set( - GTEST_CMAKE_ARGS - -DGTEST_INCLUDE_DIR=${GTEST_INCLUDE_DIR} - -DGTEST_LIBRARY=${GTEST_LIBRARY} - -DGTEST_MAIN_LIBRARY=${GTEST_MAIN_LIBRARY} -) -- cgit v1.2.3