Commit Graph
2 Commits
Author SHA1 Message Date
Gil b15283bd27 Build gRPC for Firestore C++ (#652)
* Clean up quoting and other minor issues

* Reorganize CMake build output

Make it clearer which parts of the output pertain to external projects.

* Use a consistent ordering of ExternalProject arguments

* Prevent the top-level build from running in parallel

This prevents spurious failures when running make -j.

* Actually parse arguments in the xcodebuild function

* Use ExternalProject features when available

  * submodule limits from CMake 3.0
  * shallow clones from CMake 3.6
  * git progress output from CMake 3.8

* Only build the parts of leveldb we need

Skip building the tools and other libraries

* Avoid installing ExternalProjects

Consume build output directly so that we can build just the targets we
need. Installing causes all targets to be built.

This doesn't matter as much for these targets but the gRPC build
includes a ton of stuff we don't need so it's worth adopting this as a
general strategy.

* Define an external build for grpc

* Test that grpc can link successfully.

* Add a FindGRPC CMake module

* Actually comment ExternalProjext_GitSource
2018-01-13 15:21:01 -08:00
Gil 13da48d8a4 Build FirebaseCore from CMake (#594)
* Don't bother specifying a download directory to CMake ExternalProject
* Teach CMake to build pure Xcode projects as dependencies

  This allows downstream code (like log_apple.mm) to consume this for
  testing within the CMake build without requiring a CMake-native build
  for these components.

  This makes integrating these components into the cmake build essentially
  free from the point of view of the consumed component.

* Get the CMake build semi-working on Linux again

  Many prebuilt versions of cmake on Linux lack the ability to download
  over https so use git to get googletest.

  Don't attempt to build FirebaseCore on Linux; there's no xcodebuild.

  Note the build is still ultimately broken because we don't yet have an
  alternative to arc4random on Linux but at least this is no more broken
  than it was before.
2018-01-01 21:00:32 -08:00