# Copyright 2014 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.

# GYP version: components/gcm_driver.gypi:gcm_driver
static_library("gcm_driver") {
  sources = [
    "android/component_jni_registrar.cc",
    "android/component_jni_registrar.h",
    "default_gcm_app_handler.cc",
    "default_gcm_app_handler.h",
    "gcm_activity.cc",
    "gcm_activity.h",
    "gcm_account_mapper.cc",
    "gcm_account_mapper.h",
    "gcm_app_handler.cc",
    "gcm_app_handler.h",
    "gcm_backoff_policy.cc",
    "gcm_backoff_policy.h",
    "gcm_channel_status_request.cc",
    "gcm_channel_status_request.h",
    "gcm_channel_status_syncer.cc",
    "gcm_channel_status_syncer.h",
    "gcm_client.cc",
    "gcm_client.h",
    "gcm_client_factory.cc",
    "gcm_client_factory.h",
    "gcm_client_impl.cc",
    "gcm_client_impl.h",
    "gcm_connection_observer.cc",
    "gcm_connection_observer.h",
    "gcm_delayed_task_controller.cc",
    "gcm_delayed_task_controller.h",
    "gcm_driver.cc",
    "gcm_driver.h",
    "gcm_driver_android.cc",
    "gcm_driver_android.h",
    "gcm_driver_desktop.cc",
    "gcm_driver_desktop.h",
    "gcm_stats_recorder_impl.cc",
    "gcm_stats_recorder_impl.h",
    "system_encryptor.cc",
    "system_encryptor.h",
  ]

  deps = [
    "//base",
    "//components/os_crypt",
    "//google_apis/gcm",
    "//net",
    "//sync/protocol",
  ]

  if (is_android) {
    sources -= [
      "gcm_account_mapper.cc",
      "gcm_account_mapper.h",
      "gcm_channel_status_request.cc",
      "gcm_channel_status_request.h",
      "gcm_channel_status_syncer.cc",
      "gcm_channel_status_syncer.h",
      "gcm_client_factory.cc",
      "gcm_client_factory.h",
      "gcm_client_impl.cc",
      "gcm_client_impl.h",
      "gcm_delayed_task_controller.cc",
      "gcm_delayed_task_controller.h",
      "gcm_driver_desktop.cc",
      "gcm_driver_desktop.h",
      "gcm_stats_recorder_impl.cc",
      "gcm_stats_recorder_impl.h",
    ]
    deps -= [
      "//components/gcm_driver/proto",
      "//google_apis/gcm",
    ]
    deps += [ ":jni_headers" ]
  }
}

static_library("test_support") {
  testonly = true
  sources = [
    "fake_gcm_app_handler.cc",
    "fake_gcm_app_handler.h",
    "fake_gcm_client.cc",
    "fake_gcm_client.h",
    "fake_gcm_client_factory.cc",
    "fake_gcm_client_factory.h",
    "fake_gcm_driver.cc",
    "fake_gcm_driver.h",
  ]

  deps = [
    ":gcm_driver",
    "//base",
    "//google_apis/gcm",
    "//testing/gtest",
  ]

  if (is_android) {
    sources -= [
      "fake_gcm_client.cc",
      "fake_gcm_client.h",
      "fake_gcm_client_factory.cc",
      "fake_gcm_client_factory.h",
    ]
    deps -= [ "//google_apis/gcm" ]
  }
}

if (is_android) {
  import("//build/config/android/rules.gni")

  # GYP version: components/gcm_driver.gypi:gcm_driver_jni_headers
  generate_jni("jni_headers") {
    sources = [
      "android/java/src/org/chromium/components/gcm_driver/GCMDriver.java",
    ]
    jni_package = "components/gcm_driver"
  }
}