From d03050653ff84e624def93aa512ef35907f5792a Mon Sep 17 00:00:00 2001 From: Gil Date: Tue, 26 Jun 2018 14:57:40 -0700 Subject: Install googletest (#1461) Also add FindGMock to Find gmock after installation --- Firestore/CMakeLists.txt | 19 +-------- .../test/firebase/firestore/util/CMakeLists.txt | 2 +- Firestore/third_party/abseil-cpp/CMakeLists.txt | 12 +++--- cmake/FindGMock.cmake | 47 ++++++++++++++++++++++ cmake/external/googletest.cmake | 7 ++-- 5 files changed, 59 insertions(+), 28 deletions(-) create mode 100644 cmake/FindGMock.cmake diff --git a/Firestore/CMakeLists.txt b/Firestore/CMakeLists.txt index 8b6f9d5..1240a8d 100644 --- a/Firestore/CMakeLists.txt +++ b/Firestore/CMakeLists.txt @@ -77,23 +77,8 @@ set(FIREBASE_BINARY_DIR ${PROJECT_BINARY_DIR}/..) list(INSERT CMAKE_MODULE_PATH 0 ${FIREBASE_SOURCE_DIR}/cmake) include(utils) -# Include GoogleTest directly in the build. -set(gtest_dir ${FIREBASE_BINARY_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(GTest REQUIRED) +find_package(GMock REQUIRED) find_package(LevelDB REQUIRED) find_package(GRPC REQUIRED) find_package(Nanopb REQUIRED) diff --git a/Firestore/core/test/firebase/firestore/util/CMakeLists.txt b/Firestore/core/test/firebase/firestore/util/CMakeLists.txt index 0345f7c..45245ff 100644 --- a/Firestore/core/test/firebase/firestore/util/CMakeLists.txt +++ b/Firestore/core/test/firebase/firestore/util/CMakeLists.txt @@ -137,7 +137,7 @@ cc_test( absl_base absl_strings firebase_firestore_util - gmock + GMock::GMock ) if(APPLE) diff --git a/Firestore/third_party/abseil-cpp/CMakeLists.txt b/Firestore/third_party/abseil-cpp/CMakeLists.txt index 7318cd3..4b939fa 100644 --- a/Firestore/third_party/abseil-cpp/CMakeLists.txt +++ b/Firestore/third_party/abseil-cpp/CMakeLists.txt @@ -76,14 +76,14 @@ endif() ## check targets if(BUILD_TESTING) - check_target(gtest) - check_target(gtest_main) - check_target(gmock) + check_target(GTest::GTest) + check_target(GTest::Main) + check_target(GMock::GMock) list(APPEND ABSL_TEST_COMMON_LIBRARIES - gtest_main - gtest - gmock + GTest::GTest + GTest::Main + GMock::GMock ${CMAKE_THREAD_LIBS_INIT} ) endif() diff --git a/cmake/FindGMock.cmake b/cmake/FindGMock.cmake new file mode 100644 index 0000000..76ce227 --- /dev/null +++ b/cmake/FindGMock.cmake @@ -0,0 +1,47 @@ +# Copyright 2018 Google +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +include(FindPackageHandleStandardArgs) + +find_path( + GMOCK_INCLUDE_DIR gmock/gmock.h + HINTS ${FIREBASE_INSTALL_DIR}/include +) + +find_library( + GMOCK_LIBRARY + NAMES gmock + HINTS ${FIREBASE_INSTALL_DIR}/lib +) + +find_package_handle_standard_args( + gmock + DEFAULT_MSG + GMOCK_INCLUDE_DIR + GMOCK_LIBRARY +) + +if(GMOCK_FOUND) + set(GMOCK_INCLUDE_DIRS ${GMOCK_INCLUDE_DIR}) + set(GMOCK_LIBRARIES ${GMOCK_LIBRARY}) + + if (NOT TARGET GMock::GMock) + add_library(GMock::GMock UNKNOWN IMPORTED) + set_target_properties( + GMock::GMock PROPERTIES + INTERFACE_INCLUDE_DIRECTORIES ${GMOCK_INCLUDE_DIRS} + IMPORTED_LOCATION ${GMOCK_LIBRARY} + ) + endif() +endif(GMOCK_FOUND) diff --git a/cmake/external/googletest.cmake b/cmake/external/googletest.cmake index f48c357..3af136e 100644 --- a/cmake/external/googletest.cmake +++ b/cmake/external/googletest.cmake @@ -24,10 +24,9 @@ ExternalProject_Add( PREFIX ${PROJECT_BINARY_DIR}/external/googletest - # Just download the sources without building. + CMAKE_CACHE_ARGS + -DCMAKE_INSTALL_PREFIX:STRING=${FIREBASE_INSTALL_DIR} + UPDATE_COMMAND "" - CONFIGURE_COMMAND "" - BUILD_COMMAND "" - INSTALL_COMMAND "" TEST_COMMAND "" ) -- cgit v1.2.3