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

component("surfaces") {
  output_name = "cc_surfaces"
  sources = [
    "display.cc",
    "display.h",
    "display_client.h",
    "surface.cc",
    "surface.h",
    "surface_aggregator.cc",
    "surface_aggregator.h",
    "surface_factory.cc",
    "surface_factory.h",
    "surface_factory_client.h",
    "surface_id.h",
    "surface_id_allocator.cc",
    "surface_id_allocator.h",
    "surface_manager.cc",
    "surface_manager.h",
    "surface_resource_holder.cc",
    "surface_resource_holder.h",
    "surfaces_export.h",
  ]

  defines = [ "CC_SURFACES_IMPLEMENTATION=1" ]

  deps = [
    "//base",
    "//base/third_party/dynamic_annotations",
    "//cc",
    "//skia",
    "//ui/gfx",
    "//ui/gfx/geometry",
  ]
}

