require 'pathname' # Uncomment the next two lines for pre-release testing on internal repo #source 'sso://cpdc-internal/firebase' #source 'https://cdn.cocoapods.org/' source 'https://cdn.cocoapods.org/' 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 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 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 # 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 => '../..' pod 'GoogleUtilities', :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 'FirebaseCoreDiagnostics' maybe_local_pod 'FirebaseCoreDiagnosticsInterop' maybe_local_pod 'GoogleDataTransport' maybe_local_pod 'GoogleDataTransportCCTSupport' end # 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. if platform == 'macos' # CocoaPods calls this osx platform = 'osx' end platform = platform.to_sym if symbol == platform || platform == :all puts "Adding #{symbol} targets to the project" return true else return false end end if is_platform(:ios) target 'Firestore_Example_iOS' do platform :ios, '8.0' configure_local_pods() target 'Firestore_Tests_iOS' 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_Benchmarks_iOS' do inherit! :search_paths 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 end end end if is_platform(:osx) target 'Firestore_Example_macOS' do platform :osx, '10.11' configure_local_pods() target 'Firestore_Tests_macOS' 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_macOS' 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 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 end end