| # Copyright 2014 The Chromium Authors |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| import("//build/config/cast.gni") |
| import("//build/config/ui.gni") |
| import("//gpu/vulkan/features.gni") |
| import("//media/media_options.gni") |
| |
| # See //content/BUILD.gn for how this works. |
| group("gpu") { |
| visibility = [ "//content/*" ] # This is an internal content API. |
| |
| if (is_component_build) { |
| public_deps = [ "//content" ] |
| } else { |
| public_deps = [ ":gpu_sources" ] |
| } |
| } |
| |
| if (is_component_build) { |
| link_target_type = "source_set" |
| } else { |
| link_target_type = "static_library" |
| } |
| |
| target(link_target_type, "gpu_sources") { |
| # This is an internal content API. Code outside of the content "component" |
| # (like content/test and content/shell) should depend on ":gpu" above. |
| visibility = [ "//content/*" ] |
| |
| sources = [ |
| "browser_exposed_gpu_interfaces.cc", |
| "browser_exposed_gpu_interfaces.h", |
| "gpu_child_thread.cc", |
| "gpu_child_thread.h", |
| "gpu_child_thread_receiver_bindings.cc", |
| "gpu_main.cc", |
| "gpu_service_factory.cc", |
| "gpu_service_factory.h", |
| "in_process_gpu_thread.cc", |
| "in_process_gpu_thread.h", |
| ] |
| |
| configs += [ "//content:content_implementation" ] |
| |
| deps = [ |
| "//base", |
| "//build:branding_buildflags", |
| "//components/viz/service", |
| "//content:export", |
| "//content/child", |
| "//content/common", |
| "//content/common:mojo_bindings", |
| "//content/public/child:child_sources", |
| "//content/public/common:common_sources", |
| "//gpu:gpu", |
| "//gpu/ipc/common:command_buffer_traits", |
| "//gpu/ipc/service", |
| "//ipc", |
| "//media:media_buildflags", |
| "//media/gpu", |
| "//media/mojo:buildflags", |
| |
| # TODO(jrummell): As //media/gpu/ipc/service is a source_set in a |
| # component build, determine if it should not be included here. |
| # http://crbug.com/702833. |
| "//components/viz/service/main", |
| "//media/gpu/ipc/service", |
| "//media/mojo/clients:clients", |
| "//sandbox/policy:chromecast_sandbox_allowlist_buildflags", |
| "//services/service_manager/public/cpp", |
| "//services/service_manager/public/mojom", |
| "//services/tracing/public/cpp", |
| "//services/viz/privileged/mojom", |
| "//skia", |
| "//third_party/angle:angle_gpu_info_util", |
| "//ui/gfx/ipc", |
| "//ui/gl", |
| "//ui/gl/init", |
| "//ui/latency/ipc", |
| ] |
| |
| if (!is_chromeos || !is_chrome_branded) { |
| deps += [ |
| "//services/shape_detection:lib", |
| "//services/shape_detection/public/mojom", |
| ] |
| } |
| |
| if (is_chromeos) { |
| deps += [ |
| "//components/services/font/public/cpp", |
| "//components/services/font/public/mojom", |
| ] |
| } |
| |
| if (is_android) { |
| deps += [ |
| "//components/tracing:graphics_provider", |
| "//media", |
| "//sandbox/linux:sandbox_services", |
| ] |
| } |
| |
| if (mojo_media_host == "gpu") { |
| deps += [ "//media/mojo/services" ] |
| } |
| |
| if (is_linux || is_chromeos || is_mac || is_win) { |
| deps += [ "//sandbox" ] |
| } |
| |
| if (is_mac) { |
| deps += [ "//components/metal_util" ] |
| } |
| |
| if (use_ozone) { |
| deps += [ "//ui/ozone" ] |
| } |
| |
| if (enable_vulkan) { |
| deps += [ "//gpu/vulkan" ] |
| } |
| |
| # Use DRI on desktop Linux builds. |
| if (current_cpu != "s390x" && current_cpu != "ppc64" && is_linux && |
| !is_castos) { |
| configs += [ "//build/config/linux/dri" ] |
| } |
| } |