# Copyright (c) 2013 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.

# The files here go into the "gpu" component in a component build (with
# "command_buffer_common" just forwarding) and goes into a static library in
# non-component build. This needs to match the GYP build which was likely an
# attempt to make larger components to help with loading.

group("common") {
  if (is_component_build) {
    public_deps = [
      "//gpu",
    ]
  } else {
    public_deps = [
      ":common_sources",
    ]
  }
}

source_set("common_sources") {
  visibility = [ "//gpu/*" ]

  sources = [
    "activity_flags.cc",
    "activity_flags.h",
    "bitfield_helpers.h",
    "buffer.cc",
    "buffer.h",
    "capabilities.cc",
    "capabilities.h",
    "cmd_buffer_common.cc",
    "cmd_buffer_common.h",
    "command_buffer.h",
    "command_buffer_id.h",
    "constants.h",
    "context_result.h",
    "debug_marker_manager.cc",
    "debug_marker_manager.h",
    "discardable_handle.cc",
    "discardable_handle.h",
    "gl2_types.h",
    "gles2_cmd_format.cc",
    "gles2_cmd_format.h",
    "gles2_cmd_format_autogen.h",
    "gles2_cmd_ids.h",
    "gles2_cmd_ids_autogen.h",
    "gpu_memory_buffer_support.cc",
    "gpu_memory_buffer_support.h",
    "id_allocator.cc",
    "id_allocator.h",
    "id_type.h",
    "mailbox.cc",
    "mailbox.h",
    "mailbox_holder.cc",
    "mailbox_holder.h",
    "scheduling_priority.cc",
    "scheduling_priority.h",
    "swap_buffers_complete_params.cc",
    "swap_buffers_complete_params.h",
    "sync_token.cc",
    "sync_token.h",
    "texture_in_use_response.h",
    "thread_local.h",
    "time.h",
  ]

  configs += [ "//gpu:gpu_implementation" ]

  public_deps = [
    "//mojo/public/cpp/system",
    "//ui/gfx:memory_buffer",
    "//ui/gfx/geometry",
  ]

  deps = [
    ":gles2_utils",
    "//base",
  ]
}

component("gles2_utils") {
  sources = [
    "gles2_cmd_utils.cc",
    "gles2_cmd_utils.h",
    "gles2_utils_export.h",
  ]

  defines = [ "GLES2_UTILS_IMPLEMENTATION" ]

  deps = [
    "//base",
    "//ui/gfx/geometry",
  ]

  all_dependent_configs = [ "//third_party/khronos:khronos_headers" ]
}
