* Upgrade gRPC to 1.24.3
* Upgrade C++ Protobuf to 3.9.2
Disable -Wunreachable-code in protobuf-generated code
* Regenerate C++ protos with protobuf 3.9.2
* Generate objc protos with Protobuf 3.9.2
* Drop dependency on OCMock
* Move Firestore onto Xcode 11 in Travis
* Special case simulators based on Xcode version, not product
This allows Firestore's build with Xcode 8.3.3 to continue to work.
* Make the Firestore Podfile install only one platform at a time
Use the PLATFORM environment variable to limit which targets are
modified. This makes the selected platform work but leaves the other
platforms in a broken state in the Xcode UI.
* Fix code signing errors on macOS builds
* Rename FIRQueryTests to FIRQueryUnitTests
* Make IntegrationTests targets run everything
The incremental cost of running all tests is an extra two seconds of run
time, but not starting the simulator three times during a build cuts
build times by ~25%.
* sync_project.rb generated changes
* sync_project.rb generated changes
* Remove AllTests_iOS aggregate target
* Add unit test deps to Firestore_IntegrationTests_*
* Fix BasicCompileTests on macOS and tvOS
* Run Firestore IntegrationTests only on Travis
This cuts build time for the job by about 25%, primarily due to not
having to start/deploy to the simulator repeatedly.
* Add deployment_targets for macOS and tvOS in FirebaseFirestoreSwift
* Add FirebaseFirestoreSwift as a dependency to all integration tests
* Add swift integration tests to sync_project.rb
* Fix leveldb benchmarks
... which apparently haven't been built in a while
* Manage configuration for Benchmarks and FuzzTests
* Suppress warnings in LibFuzzer
* Add a Firestore_Benchmarks_iOS scheme
* xcodeproj: Remove manual configuration for Fuzzer and Benchmarks
* Update LibFuzzer build for recent clangs
Builds are currently failing with this on standard out:
-fsanitize-coverage=trace-pc-guard is no longer supported by
libFuzzer. Please either migrate to a compiler that supports
-fsanitize=fuzzer or use an older version of libFuzzer
* Add an -all_load linker flag to all example apps
This fixes macOS and tvOS builds such that they no longer need to
explicitly link against the built FirebaseFirestore framework, which is
good because this wasn't working right: changes to the framework would
take two builds to get tests to actually see them.
The mechanism here is to amend the .xcconfig files that CocoaPods plugs
into the project, just after it generates them. This avoids the need to
actually modify the project.xcodeproj file, which reduces the potential
for conflicts.
Going forward all manual modifications to the project's configuration
will be handled this way to avoid needing special project configuration.
This also moves us incrementally closer to be being able to use test
specs and cocoapods-generate. There's too much custom configuration yet
(and several other blockers) but figuring out what's required to build
will make it such that we can eventually transition.
* xcodeproj: Remove -all_load and -framework flags
-all_load is now being supplied by sync_project.rb.
Remove manually specified -framework flags from the project file. The
-framework flags are actually coming from CocoaPods, but we copied the
others when manually linking against FirebaseFirestore. Now that that's
no longer required these can go away.
* Add a test-only mode to sync_project.rb
* Re-add CodableIntegrationTests.swift
A previous commit merged this incorrectly.
* Fix and rewrite sync_project.rb
Ever since we added multiple platforms, removing a file has been broken.
This fixes that issue.
Also, rewrite target synchronization to make more sense. Essentially now
there's one diff between the filesystem and the groups and then an
explicit diff is done between project files and target contents.
* Run sync_project.rb on post-install
* Add Firestore_IntegrationTests_macOS to Xcode
* Change deployment target from 10.14 to 10.10
* Make standard target edits
* Force C99/C++11
* Use shared test info.plist
* Remove CODE_SIGN_IDENTITY
* Add Firestore_IntegrationTests_macOS to the Podfile
* Have sync_project handle macOS integration tests
* Pod install and sync_project
* Add header search paths and ldflags
* Build integration tests on macos
* Remove integration tests from unit tests
* Make Firestore_IntegrationTests_macOS buildable from the command-line
* Rename Firestore/Example/App/macOS_example to macOS
* Update paths to macOS and names to Firestore_Example_macOS
* Add Firestore_Tests_macOS target
This uses a shared Tests Info.plist. This is important because it
configures NSPrincipalClass
* Teach sync_project about Firestore_Tests_macOS
* Add files to Firestore_Tests_macOS
* Add Firestore_Tests_macOS target to the Podfile
* Add HEADER_SEARCH_PATHS to match iOS
* Force C99/C++11 conformance
* pod install after adding Firestore_Tests_macOS
* Get macOS tests to link
* Add spec test json files to the macOS tests
* Remove development code signing
* Disable app sandboxing to allow GoogleTest death tests to succeed.
* Add a project sync script
* Give an error if the configuration references a group that doesn't exist
* Fix hard_assert_test reference
* Run sync_project to sort all project elements