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

static_library("invalidation") {
  sources = [
    "ack_handle.cc",
    "ack_handle.h",
    "ack_handler.cc",
    "ack_handler.h",
    "invalidation.cc",
    "invalidation.h",
    "invalidation_handler.cc",
    "invalidation_handler.h",
    "invalidation_logger.cc",
    "invalidation_logger.h",
    "invalidation_logger_observer.h",
    "invalidation_prefs.cc",
    "invalidation_prefs.h",
    "invalidation_service.h",
    "invalidation_service_util.cc",
    "invalidation_service_util.h",
    "invalidation_state_tracker.cc",
    "invalidation_state_tracker.h",
    "invalidation_switches.cc",
    "invalidation_switches.h",
    "invalidation_util.cc",
    "invalidation_util.h",
    "invalidator.cc",
    "invalidator.h",
    "invalidator_registrar.cc",
    "invalidator_registrar.h",
    "invalidator_state.cc",
    "invalidator_state.h",
    "invalidator_storage.cc",
    "invalidator_storage.h",
    "mock_ack_handler.cc",
    "mock_ack_handler.h",
    "object_id_invalidation_map.cc",
    "object_id_invalidation_map.h",
    "profile_invalidation_provider.cc",
    "profile_invalidation_provider.h",
    "single_object_invalidation_set.cc",
    "single_object_invalidation_set.h",
    "unacked_invalidation_set.cc",
    "unacked_invalidation_set.h",
  ]
  if (!is_android) {
    sources += [
      "gcm_invalidation_bridge.cc",
      "gcm_invalidation_bridge.h",
      "gcm_network_channel.cc",
      "gcm_network_channel.h",
      "gcm_network_channel_delegate.h",
      "invalidation_notifier.cc",
      "invalidation_notifier.h",
      "non_blocking_invalidator.cc",
      "non_blocking_invalidator.h",
      "notifier_reason_util.cc",
      "notifier_reason_util.h",
      "p2p_invalidator.cc",
      "p2p_invalidator.h",
      "push_client_channel.cc",
      "push_client_channel.h",
      "registration_manager.cc",
      "registration_manager.h",
      "state_writer.h",
      "sync_invalidation_listener.cc",
      "sync_invalidation_listener.h",
      "sync_system_resources.cc",
      "sync_system_resources.h",
      "ticl_invalidation_service.cc",
      "ticl_invalidation_service.h",
      "ticl_settings_provider.cc",
      "ticl_settings_provider.h",
    ]
  }

  public_deps = [
    "//third_party/cacheinvalidation",
  ]
  deps = [
    "//base",
    "//components/gcm_driver",
    "//components/keyed_service/core",
    "//components/pref_registry",
    "//components/signin/core/browser",
    "//google_apis",
    "//jingle:notifier",

    # TODO(sync): Remove this (http://crbug.com/133352);
    "//third_party/protobuf:protobuf_lite",
    # "//third_party/cacheinvalidation/src/google/cacheinvalidation:cacheinvalidation_proto_cpp",
  ]
}

static_library("test_support") {
  testonly = true
  sources = [
    "fake_invalidation_handler.cc",
    "fake_invalidation_handler.h",
    "fake_invalidation_state_tracker.cc",
    "fake_invalidation_state_tracker.h",
    "fake_invalidator.cc",
    "fake_invalidator.h",
    "invalidation_service_test_template.cc",
    "invalidation_service_test_template.h",
    "invalidation_test_util.cc",
    "invalidation_test_util.h",
    "invalidator_test_template.cc",
    "invalidator_test_template.h",
    "object_id_invalidation_map_test_util.cc",
    "object_id_invalidation_map_test_util.h",
    "unacked_invalidation_set_test_util.cc",
    "unacked_invalidation_set_test_util.h",
  ]
  if (!is_android) {
    sources += [
      "p2p_invalidation_service.cc",
      "p2p_invalidation_service.h",
    ]
  }

  deps = [
    "//base",
    "//components/gcm_driver:test_support",
    "//components/keyed_service/core",
    "//google_apis",
    "//jingle:notifier",
    "//jingle:notifier_test_util",
    "//net",
    "//testing/gmock",
    "//third_party/cacheinvalidation",

    # TODO(sync): Remove this (http://crbug.com/133352);
    "//third_party/protobuf:protobuf_lite",
    # "//third_party/cacheinvalidation/src/google/cacheinvalidation:cacheinvalidation_proto_cpp",
  ]
}