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

import("//build/config/ui.gni")

component("surface") {
  sources = [
    "accelerated_surface_mac.cc",
    "accelerated_surface_mac.h",
    "surface_export.h",
    "transport_dib.cc",
    "transport_dib.h",
    "transport_dib_posix.cc",
    "transport_dib_win.cc",
  ]

  defines = [ "SURFACE_IMPLEMENTATION" ]

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

  if (use_x11) {
    include_dirs = [ "//third_party/khronos" ]
  }
}
