# 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",
  ]

  configs += [ "//third_party/khronos:khronos_headers" ]

  defines = [ "SURFACE_IMPLEMENTATION" ]

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

  if (is_mac) {
    # Required by accelerated_surface_mac.cc.
    libs = [
      "IOSurface.framework",
      "OpenGL.framework",
    ]
  }
}
