# Copyright 2013 The Chromium Authors
# 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.
import("//ui/gl/features.gni")
group("common") {
if (is_component_build) {
public_deps = [ "//gpu" ]
} else {
public_deps = [ ":common_sources" ]
}
}
group("gles2") {
if (is_component_build) {
public_deps = [ "//gpu:gles2" ]
} else {
public_deps = [ ":gles2_sources" ]
}
}
group("raster") {
if (is_component_build) {
public_deps = [ "//gpu:gles2" ]
} else {
public_deps = [ ":raster_sources" ]
}
}
group("mailbox") {
if (is_component_build) {
public_deps = [ "//gpu:mailbox" ]
} else {
public_deps = [ ":mailbox_sources" ]
}
}
group("webgpu") {
public_deps = [ ":webgpu_sources" ]
}
# Minimal set of definitions which don't have GPU dependencies outside of this
# directory.
source_set("common_base_sources") {
visibility = [ "//gpu/*" ]
sources = [
"command_buffer_id.h",
"constants.h",
"context_result.cc",
"context_result.h",
"mailbox_holder.cc",
"mailbox_holder.h",
"sync_token.cc",
"sync_token.h",
]
public_deps = [
":mailbox",
"//base",
]
configs += [ "//gpu:gpu_implementation" ]
}
source_set("common_sources") {
visibility = [ "//gpu/*" ]
sources = [
"buffer.cc",
"buffer.h",
"capabilities.cc",
"capabilities.h",
"cmd_buffer_common.cc",
"cmd_buffer_common.h",
"command_buffer.h",
"common_cmd_format.h",
"context_creation_attribs.cc",
"context_creation_attribs.h",
"debug_marker_manager.cc",
"debug_marker_manager.h",
"discardable_handle.cc",
"discardable_handle.h",
"gl2_types.h",
"gpu_memory_buffer_support.cc",
"gpu_memory_buffer_support.h",
"id_allocator.cc",
"id_allocator.h",
"presentation_feedback_utils.cc",
"presentation_feedback_utils.h",
"scheduling_priority.cc",
"scheduling_priority.h",
"shared_image_capabilities.cc",
"shared_image_capabilities.h",
"shared_image_trace_utils.cc",
"shared_image_trace_utils.h",
"shared_image_usage.cc",
"shared_image_usage.h",
"shm_count.cc",
"shm_count.h",
"swap_buffers_complete_params.cc",
"swap_buffers_complete_params.h",
"swap_buffers_flags.h",
"thread_local.h",
"time.h",
]
configs += [ "//gpu:gpu_implementation" ]
public_deps = [
":common_base_sources",
":mailbox",
"//base",
"//mojo/public/cpp/system",
"//ui/gfx:memory_buffer",
"//ui/gfx/geometry",
]
deps = [ "//base" ]
}
source_set("mailbox_sources") {
visibility = [ "//gpu/*" ]
defines = [ "IS_GPU_MAILBOX_IMPL" ]
sources = [
"mailbox.cc",
"mailbox.h",
]
deps = [ "//base" ]
}
source_set("gles2_sources") {
visibility = [ "//gpu/*" ]
sources = [
"gles2_cmd_format.cc",
"gles2_cmd_format.h",
"gles2_cmd_format_autogen.h",
"gles2_cmd_ids.h",
"gles2_cmd_ids_autogen.h",
]
configs += [ "//gpu:gpu_gles2_implementation" ]
deps = [
":gles2_utils",
"//base",
]
public_deps = [ ":common" ]
}
source_set("raster_sources") {
visibility = [ "//gpu/*" ]
sources = [
"raster_cmd_enums.h",
"raster_cmd_format.cc",
"raster_cmd_format.h",
"raster_cmd_format_autogen.h",
"raster_cmd_ids.h",
"raster_cmd_ids_autogen.h",
"skia_utils.cc",
"skia_utils.h",
]
configs += [ "//gpu:raster_implementation" ]
deps = [
":gles2_utils",
"//base",
"//skia",
"//ui/gl:gl",
]
public_deps = [
":common",
"//components/viz/common:shared_image_format",
]
}
source_set("webgpu_sources") {
visibility = [ "//gpu/*" ]
sources = [
"dawn_memory_transfer_handle.h",
"webgpu_cmd_enums.h",
"webgpu_cmd_format.cc",
"webgpu_cmd_format.h",
"webgpu_cmd_format_autogen.h",
"webgpu_cmd_ids.h",
"webgpu_cmd_ids_autogen.h",
]
configs += [ "//gpu:webgpu_implementation" ]
deps = [
":gles2_utils",
"//base",
]
public_deps = [
":common",
"//ui/gl:buildflags",
]
if (use_dawn) {
deps += [ "//third_party/dawn/src/dawn/wire" ]
public_deps += [ "//third_party/dawn/src/dawn/wire:headers" ]
}
}
component("gles2_utils") {
sources = [
"gles2_cmd_copy_texture_chromium_utils.cc",
"gles2_cmd_copy_texture_chromium_utils.h",
"gles2_cmd_utils.cc",
"gles2_cmd_utils.h",
"gles2_utils_export.h",
]
defines = [ "GLES2_UTILS_IMPLEMENTATION" ]
deps = [
"//base",
"//ui/gl:gl_enums",
]
all_dependent_configs = [ "//third_party/khronos:khronos_headers" ]
}