# Copyright 2018 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

source_set("firebase") {
  # From gn documentation:
  #   https://chromium.googlesource.com/chromium/src/+/master/tools/gn/docs/reference.md#ldflags
  # "ldflags are NOT pushed to dependents, so applying ldflags to source sets
  # or static libraries will be a no-op. If you want to apply ldflags to
  # dependent targets, put them in a config and set it in the
  # all_dependent_configs or public_configs."
  #
  # This source_set must be specified as a direct deps of an ios_app_bundle
  # target for ldflags specified in :firebase_config to be applied.
  public_configs = [ ":firebase_config" ]
}

config("firebase_config") {
  visibility = [ ":firebase" ]
  ldflags = [
    "-F",
    rebase_path("Analytics", root_build_dir),
  ]
  libs = [
    "FirebaseAnalytics.framework",
    "FirebaseCore.framework",
    "FirebaseCoreDiagnostics.framework",
    "FirebaseInstanceID.framework",
    "GoogleAppMeasurement.framework",
    "GoogleUtilities.framework",
    "nanopb.framework",
  ]
}
