# Copyright 2015 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("public") {
  sources = [
    "ack_handle.cc",
    "ack_handle.h",
    "ack_handler.cc",
    "ack_handler.h",
    "invalidation.cc",
    "invalidation.h",
    "invalidation_export.h",
    "invalidation_handler.cc",
    "invalidation_handler.h",
    "invalidation_service.h",
    "invalidation_util.cc",
    "invalidation_util.h",
    "invalidator_state.cc",
    "invalidator_state.h",
    "object_id_invalidation_map.cc",
    "object_id_invalidation_map.h",
    "single_object_invalidation_set.cc",
    "single_object_invalidation_set.h",
  ]
  public_deps = [
    "//third_party/cacheinvalidation",
  ]
  deps = [
    "//base",
  ]
}
