aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar Gil <mcg@google.com>2018-06-26 14:57:40 -0700
committerGravatar GitHub <noreply@github.com>2018-06-26 14:57:40 -0700
commitd03050653ff84e624def93aa512ef35907f5792a (patch)
treecef0fb6ef7e28a3302e1578f83a8fd8d57099eba
parentae7078ca2bdd362df43e5fdba0261c5c84c1b447 (diff)
Install googletest (#1461)
Also add FindGMock to Find gmock after installation
-rw-r--r--Firestore/CMakeLists.txt19
-rw-r--r--Firestore/core/test/firebase/firestore/util/CMakeLists.txt2
-rw-r--r--Firestore/third_party/abseil-cpp/CMakeLists.txt12
-rw-r--r--cmake/FindGMock.cmake47
-rw-r--r--cmake/external/googletest.cmake7
5 files changed, 59 insertions, 28 deletions
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 ""
)