* Upgrade grpc to 150 and C++ to 14 on Cocoapods and SPM
* Minor fixes
* Upgrade to grpc 150 and c++14 for cmake build
* Add sha256
* Revert "Minor fixes"
This reverts commit 143a3ca733.
* Revert "Upgrade grpc to 150 and C++ to 14 on Cocoapods and SPM"
This reverts commit 820598484a.
When downloading external projects, if the GITHUB_TOKEN environment variable is set, pass it to the external download cmake function via HTTP_HEADER.
This will prevent GitHub throttling the HTTP requests. Unauthenticated requests are limited by GitHub to 60 per IP address per hour, whereas authenticated requests are limited to 5,000 per user per hour.
(GitHub Actions runners automatically have the GITHUB_TOKEN environment variable set.)
This unblocks nanopb changes proposed in #4264.
This upgrades everything in the gRPC constellation of dependencies to match gRPC at 1.28:
* gRPC to 1.28.0 (note that gRPC 1.28.1, while released, is a fix for just the python binding and there's no gRPC-C++ CocoaPod at that version)
* Abseil to 20200225 (as of gRPC 1.27 this is now a gRPC dependency too; there's a later patch but gRPC doesn't use it yet)
* Protobuf C++ to 3.11.4 (only used for testing in Firestore)
* C-Ares to 1.15.0
* BoringSSL to match (no change between gRPC 1.27.0 and 1.28.0)
Also, this disables CFStream-based transport on Apple platforms. This works around b/133182964, wherein CFStream will occasionally fail to raise a has-bytes-available events, causing Firestore to appear to hang.
* Port StringPrintf from //base.
Prefer this to approaches based on variadic templates. While the variadic
template mechanisms are strictly safer, they result in binary bloat we
can't afford.
This is essentially the same StringPrintf previously open sourced as a
part of protobuf, though updated for C++11 which saves a copy and a
temporary buffer on the heap.
* Add abseil as a subdirectory of Firestore
This saves having to redefine all the libraries that abseil defines as
imported libraries.
* Rename firebase_firesture_util_log_* targets
Cut the log out of the name to reflect that these will get more
components besides just logging.