Commit Graph
27 Commits
Author SHA1 Message Date
cherylEnkiduandNick Cooke 9d157aae90 Update the minimum version from C++14 to C++17 (#15074)
Co-authored-by: Nick Cooke <36927374+ncooke3@users.noreply.github.com>
2026-09-14 17:44:30 +00:00
Nick Cooke 992dd55adc [Firestore] Consolidate Firestore and FirestoreSwift (Post-Rollback) (#11954) 2023-10-19 19:52:20 -04:00
Denver Coneybeare 92ac9fcf0f Scripts cleanup: remove python six usage and get ruby from PATH (#11039) 2023-03-30 13:55:16 -04:00
Paul Beusterien a22b425377 Firestore - new public header structure (#6197) 2020-08-04 06:50:55 -07:00
Gil e3f3a78aef Remove the Firestore_SwiftTests_iOS target (#5458)
The tests in this target are already covered by
Firestore_IntegrationTests_iOS and also run on the other platforms
through the other platform variants of this target.

Also remove an explicit override of CLANG_WARN_COMMA in the
Firestore_Example_macOS target. This should have been cleaned up earlier
--no other targets have this setting.
2020-04-26 15:01:42 -07:00
Gil 12fb9f61d2 Upgrade gRPC to 1.24.3; upgrade protobuf to 3.9.2 (#4252)
* 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
2019-11-07 15:23:14 -08:00
Gil 7e78166064 Use base_configuration_reference.real_path rather than path (#4118)
real_path has the correct value after a pod deintegrate, while path has
some nearly correct value. No idea why these are different.
2019-10-18 12:56:46 -07:00
Gil f32cc12ce0 Build Firestore with Xcode 11 (#4005)
* 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
2019-10-07 08:46:06 -07:00
wu-hui dff57b6048 Enable -Werror for Firestore XCode project (#3836) 2019-09-13 12:39:18 -07:00
Gil 0da97f9676 Conditionally use local sources for Firestore (#3648)
This will force post-merge builds to validate compatibility with
pre-release versions of other Firebase pods
2019-08-23 12:08:20 -07:00
Gil aefd4323a2 Remove Objective-C immutable sets and maps (#3590)
* Remove Firestore/third_party/Immutable

* Update podspec and sync_project

* Project updates
2019-08-19 09:09:20 -07:00
Gil 37affc1eb4 Have Firestore integration tests run all tests (#3342)
* 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.
2019-07-12 15:57:03 -07:00
Gil 6ea0fbd950 Manage resources with sync_project.rb (#3340)
* Sync resources

Apply ignored files to target contents too.

* Clean up macOS host app

resources/roots.pem does not exist
2019-07-12 10:17:33 -07:00
Gil 79627a22cc Add Swift integration tests to macOS and tvOS builds (#3336)
* 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
2019-07-11 18:25:52 -07:00
Gil 3d0c97ecf5 Manage configuration for benchmarks and fuzz tests and fix them (#3335)
* 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
2019-07-11 15:58:30 -07:00
Gil 072047ccfc Manage search paths with sync_project.rb (#3326)
* xcodeproj: Remove needless FRAMEWORK_SEARCH_PATHS

* xcodeproj: Remove manually specified language standards

* Manage swift versions and bridging headers

* xcodeproj: Remove manually specified swift settings

* Manage header search paths

* xcodeproj: Remove manually specified search paths

* Manage language standards based on the podspec
2019-07-11 08:08:01 -07:00
Gil 6de3382e89 Add an -all_load linker flag to all example apps (#3315)
* 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.
2019-07-09 14:48:04 -05:00
Gil c7f11450d0 Fix and rewrite sync_project.rb (#3296)
* 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
2019-07-08 12:30:13 -05:00
Gil 0729c9dfe9 Add tvOS support to Firestore (#2662)
* Create tvOS host app

* Standard project edits

  * Remove code signing
  * Force C99/C++11
  * Adjust plist file for new location
  * header search paths
  * LDFLAGS

* Add Firestore_{Tests,IntegrationTests}_tvOS

* Add tvOS tests to the Podfile

* Add Firestore tvOS xcodebuild to build.sh

* Teach sync_project to keep tvOS up-to-date

* Add Firestore tvOS to Travis
2019-03-28 11:43:43 -07:00
Gil 13c1c80a48 Add support for running Firestore integration tests (#2660)
* 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
2019-03-27 16:05:55 -07:00
Gil c2a10a9f86 Add support for Firestore unit tests on macOS (#2641)
* 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.
2019-03-26 14:51:57 -07:00
Gil 3ada7da29f Ignore dotfiles when running sync_project.rb (#1771)
* Fix typos

* Ignore dot files (like .DS_Store)

* Also avoid .orig files
2018-09-01 15:50:27 -07:00
Gil 2813ac30da Fix analyze issues in Firestore (#1763)
* Fix analyzer errors in Firestore

* Add testutil to IntegrationTests
2018-08-29 12:09:52 -07:00
Marek Gilbert 914542d7bf Remove exclusions for serializer_test.cc 2018-06-15 16:07:58 -07:00
Rich Gowman f92829fa75 Remove Protos/cpp/google/protobuf from sync_project.rb ...
... and run sync_project.rb
2018-06-13 10:48:37 -04:00
Rich Gowman 1597765af8 Add CoreTestsProtos to scripts/sync_project.rb (and run it) 2018-05-29 17:49:12 -04:00
Gil d3e9819275 Add a test synchronization script (#1303)
* 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
2018-05-23 11:42:17 -07:00