Pod::Spec.new do |s|
  s.name             = 'FirebasePerformance'
  s.version          = '10.4.0'
  s.summary          = 'Firebase Performance'

  s.description      = <<-DESC
Firebase Performance library to measure performance of Mobile and Web Apps.
                       DESC

  s.homepage         = 'https://firebase.google.com'
  s.license          = { :type => 'Apache-2.0', :file => 'LICENSE' }
  s.authors          = 'Google, Inc.'

  s.source           = {
    :git => 'https://github.com/firebase/firebase-ios-sdk.git',
    :tag => 'CocoaPods-' + s.version.to_s
  }
  s.social_media_url = 'https://twitter.com/Firebase'

  ios_deployment_target = '11.0'
  tvos_deployment_target = '12.0'

  s.swift_version = '5.3'

  s.ios.deployment_target = ios_deployment_target
  s.tvos.deployment_target = tvos_deployment_target

  s.cocoapods_version = '>= 1.4.0'
  s.prefix_header_file = false

  base_dir = "FirebasePerformance/"
  s.source_files = [
    base_dir + 'Sources/**/*.[cmh]',
    'FirebaseCore/Extension/*.h',
    'FirebaseInstallations/Source/Library/Private/*.h',
    'FirebaseRemoteConfig/Sources/Private/*.h',
  ]

  s.requires_arc = [
    base_dir + 'Sources/**/*.[mh]',
    base_dir + 'Public/**/*.h',
  ]

  s.public_header_files = base_dir + 'Sources/Public/FirebasePerformance/*.h'

  preprocessor_definitions = 'FIRPerformance_LIB_VERSION=' + String(s.version)
  preprocessor_definitions += ' PB_FIELD_32BIT=1 PB_NO_PACKED_STRUCTS=1 PB_ENABLE_MALLOC=1'
  if ENV['FPR_UNSWIZZLE_AVAILABLE'] && ENV['FPR_UNSWIZZLE_AVAILABLE'] == '1' then
    preprocessor_definitions += ' UNSWIZZLE_AVAILABLE=1'
  end

  s.pod_target_xcconfig = {
    'GCC_C_LANGUAGE_STANDARD' => 'c99',
    'GCC_PREPROCESSOR_DEFINITIONS' => preprocessor_definitions,
    # Unit tests do library imports using repo-root relative paths.
    'HEADER_SEARCH_PATHS' => '"${PODS_TARGET_SRCROOT}"',
  }

  s.ios.framework = 'CoreTelephony'
  s.framework = 'QuartzCore'
  s.framework = 'SystemConfiguration'
  s.dependency 'FirebaseCore', '~> 10.0'
  s.dependency 'FirebaseInstallations', '~> 10.0'
  s.dependency 'FirebaseRemoteConfig', '~> 10.0'
  s.dependency 'GoogleDataTransport', '~> 9.2'
  s.dependency 'GoogleUtilities/Environment', '~> 7.8'
  s.dependency 'GoogleUtilities/ISASwizzler', '~> 7.8'
  s.dependency 'GoogleUtilities/MethodSwizzler', '~> 7.8'
  s.dependency 'nanopb', '>= 2.30908.0', '< 2.30910.0'

  s.test_spec 'unit' do |unit_tests|
    unit_tests.platforms = {:ios => ios_deployment_target, :tvos => tvos_deployment_target}
    unit_tests.scheme = { :code_coverage => true }
    unit_tests.source_files = [
      'FirebasePerformance/Tests/Unit/**/*.{m,h,plist}',
      'SharedTestUtilities/*.[hm]',
    ]
    unit_tests.resources = ['FirebasePerformance/Tests/Unit/Server/*File']
    unit_tests.requires_arc = true
    unit_tests.requires_app_host = true
    unit_tests.pod_target_xcconfig = {
     'CLANG_ENABLE_OBJC_WEAK' => 'YES',
    }
    unit_tests.info_plist = {
      'FPRTestingDummyFeature' => true,
      'FPRScreenTracesForContainerVC' => true,
      'FPRDelegateSwizzling' => true,
      'FPRNSURLConnection' => true,
      'FPRScreenTracesSwizzling' => true,
      'FPRScreenTraces' => false,
    }

    unit_tests.dependency 'GoogleUtilities/SwizzlerTestHelpers'
    unit_tests.dependency 'OCMock'
    unit_tests.dependency 'GCDWebServer'
  end

  s.app_spec 'TestApp' do |app_spec|
    app_spec.platforms = {:ios => ios_deployment_target, :tvos => tvos_deployment_target}
    app_spec.source_files = ['FirebasePerformance/Tests/TestApp/Source/**/*.{m,h}']
    ios_resources = ['FirebasePerformance/Tests/TestApp/Resources/*.*']
    if ENV['FPR_AUTOPUSH_ENV'] && ENV['FPR_AUTOPUSH_ENV'] == '1' then
      ios_resources += ['FirebasePerformance/Tests/TestApp/Plists/Autopush/**/*.plist']
      app_spec.info_plist = {
        'CFBundleIdentifier' => 'com.google.FIRPerfTestAppAutopush'
      }
      app_spec.scheme = {
        :environment_variables => { "FPR_AUTOPUSH_ENV" => "1" }
      }
    else
      ios_resources += ['FirebasePerformance/Tests/TestApp/Plists/Prod/**/*.plist']
      app_spec.info_plist = {
        'CFBundleIdentifier' => 'com.google.FIRPerfTestApp'
      }
    end
    app_spec.ios.resources = ios_resources
    app_spec.requires_arc = true
  end

end