Files
firebase-ios-sdk/Firestore/Example/Podfile
T

222 lines
6.7 KiB
Ruby
Raw Normal View History

2019-07-08 12:30:13 -05:00
require 'pathname'
2019-01-14 11:19:52 -08:00
# Uncomment the next two lines for pre-release testing on internal repo
2018-10-25 15:02:23 -04:00
#source 'sso://cpdc-internal/firebase'
2019-06-27 10:08:24 -07:00
#source 'https://cdn.cocoapods.org/'
2018-04-19 14:06:08 -07:00
2019-06-27 10:08:24 -07:00
source 'https://cdn.cocoapods.org/'
2019-01-14 11:19:52 -08:00
2017-10-03 08:55:22 -07:00
use_frameworks!
install! 'cocoapods',
:generate_multiple_pod_projects => true,
:incremental_installation => true,
# Disable input/output path checking for generated frameworks to make
# incremental builds work properly. Without this, changes to the framework
# may not be picked up in between test runs.
#
# See:
# https://github.com/CocoaPods/CocoaPods/issues/8073
# https://www.ralfebert.de/ios/blog/cocoapods-clean-input-output-files/
:disable_input_output_paths => true
2019-07-08 12:30:13 -05:00
post_install do |installer|
sync = Pathname.new(__FILE__).dirname.join('../../scripts/sync_project.rb')
system('ruby', sync.to_s)
if !$?.success?
raise "sync_project.rb failed with status #{$?.exitstatus}"
end
2019-07-08 12:30:13 -05:00
end
# Returns true if the user has explicitly requested local sources or if this is
# a non-PR Travis build.
def use_local_sources()
return ENV.has_key?('USE_LOCAL_SOURCES') || ENV['TRAVIS_PULL_REQUEST'] == 'false'
end
2019-08-26 19:35:45 -07:00
def xcode_major_version()
version = `xcodebuild -version`
if version =~ /^Xcode\s*(\d+)\./
return $1.to_i
else
raise "Could not find Xcode version in '$version'"
end
end
# Adds a `pod name, :path => ../..` declaration to use local sources if the
# Podfile has been configured to operate that way.
def maybe_local_pod(name)
if use_local_sources()
pod name, :path => '../..'
end
end
# Adds local pod declarations for all Firestore's transitive dependencies if
# required.
def configure_local_pods()
# Firestore is always local; that's what's under development here.
pod 'FirebaseFirestore', :path => '../../'
# FirebaseCore must always be a local pod so that CI builds that make changes
# to its podspec can still function. See Firestore-*-xcodebuild in
# scripts/install_prereqs.sh for more details.
pod 'FirebaseCore', :path => '../..'
# Pull in local sources conditionally.
maybe_local_pod 'FirebaseAuth'
maybe_local_pod 'FirebaseAuthInterop'
maybe_local_pod 'GoogleUtilities'
2019-08-26 19:35:45 -07:00
if xcode_major_version() >= 9
# Firestore still compiles with Xcode 8 to help verify general conformance
# with C++11 by using an older compiler that doesn't have as many
# extensions from later versions of the language. However, Firebase as a
# whole does not support this environment and @available checks in
# GoogleDataTransport would otherwise break this build.
#
# Firestore doesn't depend on GoogleDataTransport directly--it comes in as
# a dependency of FirebaseCoreDiagnostics. Luckily, FirebaseCore does not
# strongly depend on this, so we can edit the dependency out in the podspec
# and then avoid adding those dependencies here to prevent CocoaPods from
# importing it.
#
# This list should include the transitive closure of all dependencies of
# FirebaseCoreDiagnostics, except GoogleUtilities which we otherwise need.
maybe_local_pod 'FirebaseCoreDiagnostics'
maybe_local_pod 'FirebaseCoreDiagnosticsInterop'
maybe_local_pod 'GoogleDataTransport'
maybe_local_pod 'GoogleDataTransportCCTSupport'
end
end
2019-07-08 12:30:13 -05:00
2019-10-07 08:46:06 -07:00
# Reads the value of the PLATFORM environment variable, converts it to the
# equivalent symbol (e.g. 'iOS' => :ios, 'macOS' => :osx) and returns true if
# the argument matches.
def is_platform(symbol)
platform = ENV['PLATFORM'] || 'all'
platform = platform.downcase # If set, will be frozen.
2017-10-03 08:55:22 -07:00
2019-10-07 08:46:06 -07:00
if platform == 'macos'
# CocoaPods calls this osx
platform = 'osx'
end
2019-10-07 08:46:06 -07:00
platform = platform.to_sym
2019-10-07 08:46:06 -07:00
if symbol == platform || platform == :all
puts "Adding #{symbol} targets to the project"
return true
else
return false
end
end
2019-10-07 08:46:06 -07:00
if is_platform(:ios)
target 'Firestore_Example_iOS' do
platform :ios, '8.0'
2019-10-07 08:46:06 -07:00
# The next line is the forcing function for the Firebase pod. The Firebase
# version's subspecs should depend on the component versions in their
# corresponding podspecs.
2019-10-22 11:35:29 -07:00
pod 'Firebase/CoreOnly', '6.11.0'
2019-10-07 08:46:06 -07:00
configure_local_pods()
2019-10-07 08:46:06 -07:00
target 'Firestore_Tests_iOS' do
inherit! :search_paths
2019-10-07 08:46:06 -07:00
pod 'GoogleBenchmark', :podspec => 'GoogleBenchmark.podspec'
pod 'GoogleTest', :podspec => 'GoogleTest.podspec'
pod 'ProtobufCpp', :podspec => 'ProtobufCpp.podspec'
2019-10-07 08:46:06 -07:00
pod 'leveldb-library'
end
2019-10-07 08:46:06 -07:00
target 'Firestore_Benchmarks_iOS' do
inherit! :search_paths
2019-10-07 08:46:06 -07:00
pod 'GoogleBenchmark', :podspec => 'GoogleBenchmark.podspec'
end
target 'Firestore_IntegrationTests_iOS' do
inherit! :search_paths
pod 'FirebaseFirestoreSwift', :path => '../../'
pod 'GoogleBenchmark', :podspec => 'GoogleBenchmark.podspec'
pod 'GoogleTest', :podspec => 'GoogleTest.podspec'
pod 'ProtobufCpp', :podspec => 'ProtobufCpp.podspec'
pod 'leveldb-library'
end
target 'Firestore_SwiftTests_iOS' do
pod 'FirebaseFirestoreSwift', :path => '../../'
end
target 'Firestore_FuzzTests_iOS' do
inherit! :search_paths
platform :ios, '9.0'
pod 'LibFuzzer', :podspec => 'LibFuzzer.podspec', :inhibit_warnings => true
pod '!ProtoCompiler'
end
end
end
2019-03-28 11:43:43 -07:00
2019-10-07 08:46:06 -07:00
if is_platform(:osx)
target 'Firestore_Example_macOS' do
platform :osx, '10.11'
2019-03-28 11:43:43 -07:00
2019-10-07 08:46:06 -07:00
configure_local_pods()
2019-03-28 11:43:43 -07:00
2019-10-07 08:46:06 -07:00
target 'Firestore_Tests_macOS' do
inherit! :search_paths
2019-03-28 11:43:43 -07:00
2019-10-07 08:46:06 -07:00
pod 'GoogleBenchmark', :podspec => 'GoogleBenchmark.podspec'
pod 'GoogleTest', :podspec => 'GoogleTest.podspec'
pod 'ProtobufCpp', :podspec => 'ProtobufCpp.podspec'
2019-03-28 11:43:43 -07:00
2019-10-07 08:46:06 -07:00
pod 'leveldb-library'
end
2019-03-28 11:43:43 -07:00
2019-10-07 08:46:06 -07:00
target 'Firestore_IntegrationTests_macOS' do
inherit! :search_paths
2019-03-28 11:43:43 -07:00
2019-10-07 08:46:06 -07:00
pod 'FirebaseFirestoreSwift', :path => '../../'
pod 'GoogleBenchmark', :podspec => 'GoogleBenchmark.podspec'
pod 'GoogleTest', :podspec => 'GoogleTest.podspec'
pod 'ProtobufCpp', :podspec => 'ProtobufCpp.podspec'
2019-03-28 11:43:43 -07:00
2019-10-07 08:46:06 -07:00
pod 'leveldb-library'
end
end
end
if is_platform(:tvos)
target 'Firestore_Example_tvOS' do
platform :tvos, '10.0'
configure_local_pods()
target 'Firestore_Tests_tvOS' do
inherit! :search_paths
pod 'GoogleBenchmark', :podspec => 'GoogleBenchmark.podspec'
pod 'GoogleTest', :podspec => 'GoogleTest.podspec'
pod 'ProtobufCpp', :podspec => 'ProtobufCpp.podspec'
pod 'leveldb-library'
end
target 'Firestore_IntegrationTests_tvOS' do
inherit! :search_paths
pod 'FirebaseFirestoreSwift', :path => '../../'
pod 'GoogleBenchmark', :podspec => 'GoogleBenchmark.podspec'
pod 'GoogleTest', :podspec => 'GoogleTest.podspec'
pod 'ProtobufCpp', :podspec => 'ProtobufCpp.podspec'
pod 'leveldb-library'
end
2019-03-28 11:43:43 -07:00
end
end