From fb9f24eaee4c57d09ec0dca32abff840b39f7c7e Mon Sep 17 00:00:00 2001 From: Gil Date: Fri, 13 Jul 2018 11:09:44 -0700 Subject: 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. --- Firestore/CMakeLists.txt | 43 ++++++++++++++++++++++++++++++++++++++----- 1 file changed, 38 insertions(+), 5 deletions(-) (limited to 'Firestore/CMakeLists.txt') 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 $ +) + + +enable_testing() include(CompilerSetup) # Superbuild installed results -- cgit v1.2.3