aboutsummaryrefslogtreecommitdiffhomepage
path: root/Firestore
diff options
context:
space:
mode:
authorGravatar Gil <mcg@google.com>2018-07-13 11:09:44 -0700
committerGravatar GitHub <noreply@github.com>2018-07-13 11:09:44 -0700
commitfb9f24eaee4c57d09ec0dca32abff840b39f7c7e (patch)
tree95bde20bd905b2a2647ff60c09435526070cac9a /Firestore
parent855a7665aef505db456aa1c6f1cb9ea2b68056da (diff)
Convert googletest and nanopb CMake builds to add_subdirectory (#1522)
* Add a download-only boringssl ExternalProject Match boringssl version to grpc submodule version Note: not yet in use * Split grpc into separate download and build tasks This allows other external targets to download into the gRPC source tree before grpc is actually built. * Convert grpc to an http download * Build googletest with add_subdirectory Also: * Revert library-name modifications in the abseil-cpp build * Move abseil-cpp add_subdirectory build into place * Build nanopb with add_subdirectory * Force nanopb first to work around ODR violations This is a temporary work-around for b/111328563.
Diffstat (limited to 'Firestore')
-rw-r--r--Firestore/CMakeLists.txt43
-rw-r--r--Firestore/Protos/CMakeLists.txt7
-rw-r--r--Firestore/core/src/firebase/firestore/local/CMakeLists.txt4
-rw-r--r--Firestore/core/src/firebase/firestore/nanopb/CMakeLists.txt4
-rw-r--r--Firestore/core/src/firebase/firestore/remote/CMakeLists.txt4
-rw-r--r--Firestore/third_party/abseil-cpp/CMakeLists.txt12
6 files changed, 53 insertions, 21 deletions
diff --git a/Firestore/CMakeLists.txt b/Firestore/CMakeLists.txt
index eb9744b..cbcd49d 100644
--- a/Firestore/CMakeLists.txt
+++ b/Firestore/CMakeLists.txt
@@ -42,16 +42,49 @@ if(APPLE)
find_package(FirebaseCore REQUIRED)
find_package(GoogleUtilities REQUIRED)
endif()
-find_package(GMock REQUIRED)
find_package(GRPC REQUIRED)
-find_package(GTest REQUIRED)
find_package(LevelDB REQUIRED)
-find_package(Nanopb REQUIRED)
find_package(Protobuf REQUIRED)
-enable_testing()
-add_subdirectory(third_party/abseil-cpp)
+# Googletest
+add_subdirectory(
+ ${FIREBASE_BINARY_DIR}/src/googletest
+ ${FIREBASE_BINARY_DIR}/src/googletest-build
+ EXCLUDE_FROM_ALL
+)
+add_alias(GTest::GTest gtest)
+add_alias(GTest::Main gtest_main)
+add_alias(GMock::GMock gmock)
+
+
+# Abseil-cpp
+add_subdirectory(
+ third_party/abseil-cpp
+)
+
+
+# nanopb
+set(nanopb_BUILD_GENERATOR ON CACHE BOOL "Enable the nanopb generator")
+set(nanopb_PROTOC_PATH ${NANOPB_PROTOC_BIN} CACHE STRING "Protoc location")
+add_subdirectory(
+ ${FIREBASE_BINARY_DIR}/src/nanopb
+ ${FIREBASE_BINARY_DIR}/src/nanopb-build
+ EXCLUDE_FROM_ALL
+)
+
+target_compile_definitions(
+ protobuf-nanopb
+ PUBLIC -DPB_FIELD_16BIT
+)
+
+target_include_directories(
+ protobuf-nanopb
+ INTERFACE $<BUILD_INTERFACE:${FIREBASE_BINARY_DIR}/src/nanopb>
+)
+
+
+enable_testing()
include(CompilerSetup)
# Superbuild installed results
diff --git a/Firestore/Protos/CMakeLists.txt b/Firestore/Protos/CMakeLists.txt
index fdf45e7..214c15f 100644
--- a/Firestore/Protos/CMakeLists.txt
+++ b/Firestore/Protos/CMakeLists.txt
@@ -53,13 +53,6 @@ cc_library(
protobuf-nanopb
)
-target_compile_definitions(
- firebase_firestore_protos_nanopb
- PUBLIC -DPB_FIELD_16BIT
-)
-
-# TODO(rsgowman): this may be worth moving into cc_library, possibly via an
-# INCLUDE_DIRS or similar.
target_include_directories(
firebase_firestore_protos_nanopb
PUBLIC ${FIREBASE_SOURCE_DIR}/Firestore/Protos/nanopb
diff --git a/Firestore/core/src/firebase/firestore/local/CMakeLists.txt b/Firestore/core/src/firebase/firestore/local/CMakeLists.txt
index 5a47187..f1c65c4 100644
--- a/Firestore/core/src/firebase/firestore/local/CMakeLists.txt
+++ b/Firestore/core/src/firebase/firestore/local/CMakeLists.txt
@@ -22,6 +22,9 @@ cc_library(
local_serializer.h
local_serializer.cc
DEPENDS
+ # TODO(b/111328563) Force nanopb first to work around ODR violations
+ protobuf-nanopb
+
LevelDB::LevelDB
absl_strings
firebase_firestore_model
@@ -29,5 +32,4 @@ cc_library(
firebase_firestore_protos_nanopb
firebase_firestore_remote
firebase_firestore_util
- protobuf-nanopb
)
diff --git a/Firestore/core/src/firebase/firestore/nanopb/CMakeLists.txt b/Firestore/core/src/firebase/firestore/nanopb/CMakeLists.txt
index fd34c2e..0471b1c 100644
--- a/Firestore/core/src/firebase/firestore/nanopb/CMakeLists.txt
+++ b/Firestore/core/src/firebase/firestore/nanopb/CMakeLists.txt
@@ -21,7 +21,9 @@ cc_library(
writer.h
writer.cc
DEPENDS
+ # TODO(b/111328563) Force nanopb first to work around ODR violations
+ protobuf-nanopb
+
firebase_firestore_util
firebase_firestore_protos_nanopb
- protobuf-nanopb
)
diff --git a/Firestore/core/src/firebase/firestore/remote/CMakeLists.txt b/Firestore/core/src/firebase/firestore/remote/CMakeLists.txt
index a2bdbe2..af62ab1 100644
--- a/Firestore/core/src/firebase/firestore/remote/CMakeLists.txt
+++ b/Firestore/core/src/firebase/firestore/remote/CMakeLists.txt
@@ -22,10 +22,12 @@ cc_library(
serializer.h
serializer.cc
DEPENDS
+ # TODO(b/111328563) Force nanopb first to work around ODR violations
+ protobuf-nanopb
+
firebase_firestore_model
firebase_firestore_nanopb
firebase_firestore_protos_nanopb
firebase_firestore_util
grpc::grpc
- protobuf-nanopb
)
diff --git a/Firestore/third_party/abseil-cpp/CMakeLists.txt b/Firestore/third_party/abseil-cpp/CMakeLists.txt
index 4b939fa..7318cd3 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::GTest)
- check_target(GTest::Main)
- check_target(GMock::GMock)
+ check_target(gtest)
+ check_target(gtest_main)
+ check_target(gmock)
list(APPEND ABSL_TEST_COMMON_LIBRARIES
- GTest::GTest
- GTest::Main
- GMock::GMock
+ gtest_main
+ gtest
+ gmock
${CMAKE_THREAD_LIBS_INIT}
)
endif()