diff options
author | Gil <mcg@google.com> | 2018-07-13 11:09:44 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-07-13 11:09:44 -0700 |
commit | fb9f24eaee4c57d09ec0dca32abff840b39f7c7e (patch) | |
tree | 95bde20bd905b2a2647ff60c09435526070cac9a /Firestore | |
parent | 855a7665aef505db456aa1c6f1cb9ea2b68056da (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.txt | 43 | ||||
-rw-r--r-- | Firestore/Protos/CMakeLists.txt | 7 | ||||
-rw-r--r-- | Firestore/core/src/firebase/firestore/local/CMakeLists.txt | 4 | ||||
-rw-r--r-- | Firestore/core/src/firebase/firestore/nanopb/CMakeLists.txt | 4 | ||||
-rw-r--r-- | Firestore/core/src/firebase/firestore/remote/CMakeLists.txt | 4 | ||||
-rw-r--r-- | Firestore/third_party/abseil-cpp/CMakeLists.txt | 12 |
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() |