blob: 3e858724af3bd147e5283b20061a1bba81e01c63 [file] [log] [blame]
[email protected]dab154ee2014-06-13 23:48:501# Copyright 2014 The Chromium Authors. All rights reserved.
2# Use of this source code is governed by a BSD-style license that can be
3# found in the LICENSE file.
4
Daniel Bratellb2123d42017-12-04 11:59:515import("//build/config/jumbo.gni")
[email protected]22fe91d2014-08-12 17:07:126import("//build/config/ui.gni")
qyearsleydb0a34872017-03-14 03:24:317import("//gpu/vulkan/features.gni")
xhwangfb22df12015-10-13 23:13:468import("//media/media_options.gni")
kylechar476993472016-09-14 16:03:489import("//ui/ozone/ozone.gni")
[email protected]dab154ee2014-06-13 23:48:5010
sammcd06e3fc2015-04-28 00:14:5411# See //content/BUILD.gn for how this works.
12group("gpu") {
brettwb78fc9e2016-03-25 21:02:5113 visibility = [ "//content/*" ] # This is an internal content API.
sammcd06e3fc2015-04-28 00:14:5414
15 if (is_component_build) {
16 public_deps = [
17 "//content",
18 ]
19 } else {
20 public_deps = [
21 ":gpu_sources",
22 ]
23 }
24}
25
brucedawson6e53a2e12016-07-23 19:35:4726if (is_component_build) {
Daniel Bratellb2123d42017-12-04 11:59:5127 link_target_type = "jumbo_source_set"
brucedawson6e53a2e12016-07-23 19:35:4728} else {
Daniel Bratellb2123d42017-12-04 11:59:5129 link_target_type = "jumbo_static_library"
brucedawson6e53a2e12016-07-23 19:35:4730}
Tom Sepez085507ab2017-10-18 22:36:0031
brucedawson6e53a2e12016-07-23 19:35:4732target(link_target_type, "gpu_sources") {
brettwb78fc9e2016-03-25 21:02:5133 # This is an internal content API. Code outside of the content "component"
34 # (like content/test and content/shell) should depend on ":gpu" above.
Brett Wilson8f1323042014-09-11 16:58:5635 visibility = [ "//content/*" ]
[email protected]6294f0d2014-08-20 17:43:0936
[email protected]dab154ee2014-06-13 23:48:5037 sources = [
satorux7fa9d302015-02-16 00:44:5238 "gpu_child_thread.cc",
39 "gpu_child_thread.h",
[email protected]dab154ee2014-06-13 23:48:5040 "gpu_main.cc",
41 "gpu_process.cc",
42 "gpu_process.h",
Tom Sepez085507ab2017-10-18 22:36:0043 "gpu_sandbox_hook_linux.cc",
44 "gpu_sandbox_hook_linux.h",
ben507aa812016-08-10 23:26:1945 "gpu_service_factory.cc",
46 "gpu_service_factory.h",
[email protected]dab154ee2014-06-13 23:48:5047 "in_process_gpu_thread.cc",
48 "in_process_gpu_thread.h",
49 ]
50
ben02a37772015-11-19 04:37:0551 configs += [ "//content:content_implementation" ]
[email protected]dab154ee2014-06-13 23:48:5052
53 deps = [
54 "//base",
brettwb78fc9e2016-03-25 21:02:5155 "//base/third_party/dynamic_annotations",
56 "//components/tracing",
Fady Samuel279f5f02017-06-14 23:23:0057 "//components/viz/service",
[email protected]dab154ee2014-06-13 23:48:5058 "//content:export",
brettwdb087102016-04-18 21:33:0859 "//content/child",
brettwb78fc9e2016-03-25 21:02:5160 "//content/common",
chiniforooshan701fa212017-04-06 22:22:4961 "//content/common:mojo_bindings",
blundell24ab5d362014-11-21 10:11:1962 "//content/public/child:child_sources",
fsamuel68efb482016-03-17 12:15:4363 "//content/public/common:common_sources",
markdittmercbf36ce2016-03-02 16:08:2964 "//gpu:gpu",
fsamuel19acfae2016-03-22 05:38:2465 "//gpu/ipc/common:command_buffer_traits",
Zhenyao Mo83b895e2017-10-18 18:50:5466 "//gpu/ipc/common:gpu_preferences_util",
markdittmerd88b8352016-04-08 15:28:4567 "//gpu/ipc/service",
fsamuel68efb482016-03-17 12:15:4368 "//ipc",
Scott Violeta35f9a42018-03-22 22:00:4469 "//media:media_buildflags",
markdittmer6e70beb82016-05-02 05:40:4770 "//media/gpu",
Scott Violeta35f9a42018-03-22 22:00:4471 "//media/mojo:buildflags",
jrummell397905b2017-03-20 22:36:2572
73 # TODO(jrummell): As //media/gpu/ipc/service is a source_set in a
74 # component build, determine if it should not be included here.
75 # http://crbug.com/702833.
Sadrul Habib Chowdhury55fc2f02017-10-27 02:40:0676 "//components/viz/service/main",
markdittmer6e70beb82016-05-02 05:40:4777 "//media/gpu/ipc/service",
liberato441ca702017-05-13 16:50:3878 "//media/mojo/clients:clients",
rockot734fb662016-10-15 16:41:3079 "//services/service_manager/public/cpp",
Ken Rockot543f5e32018-02-04 02:13:5080 "//services/service_manager/public/mojom",
mcasas73550c042017-03-17 02:03:3781 "//services/shape_detection:lib",
Ken Rockotd7e999b2018-02-11 15:48:2182 "//services/shape_detection/public/mojom",
Sadrul Habib Chowdhury55fc2f02017-10-27 02:40:0683 "//services/viz/privileged/interfaces",
[email protected]dab154ee2014-06-13 23:48:5084 "//skia",
Tom Sepeza0950c62017-10-18 20:39:1485 "//third_party/angle:angle_gpu_info_util",
brettwb78fc9e2016-03-25 21:02:5186 "//ui/gfx/ipc",
[email protected]dab154ee2014-06-13 23:48:5087 "//ui/gl",
kylechar5b9dec12016-05-16 15:40:5788 "//ui/gl/init",
mfomitchev3ba450ad2017-04-03 18:20:4089 "//ui/latency/ipc",
[email protected]dab154ee2014-06-13 23:48:5090 ]
91
xhwangded3b6e2016-05-25 05:24:5192 if (is_android) {
jrummell397905b2017-03-20 22:36:2593 deps += [ "//media" ]
xhwangded3b6e2016-05-25 05:24:5194 }
95
xhwangbe720032016-02-19 18:45:3196 if (mojo_media_host == "gpu") {
xhwangd3b5d3f2016-05-18 03:37:5997 deps += [ "//media/mojo/services" ]
xhwangfb22df12015-10-13 23:13:4698 }
99
[email protected]dab154ee2014-06-13 23:48:50100 if (is_win) {
101 configs += [
102 "//third_party/khronos:khronos_headers",
103 "//third_party/wtl:wtl_includes",
104 ]
105 libs = [ "setupapi.lib" ]
Peter Collingbourne9e668e52017-12-14 23:28:09106 deps += [ "//sandbox" ]
[email protected]dab154ee2014-06-13 23:48:50107 }
108
Bill Budge2ca35142018-02-21 23:22:22109 if (is_linux || is_mac) {
110 deps += [ "//sandbox" ]
111 }
112
[email protected]22fe91d2014-08-12 17:07:12113 if (use_x11) {
kylecharb8d249c2017-12-15 00:04:18114 deps += [
115 "//ui/events/platform/x11",
116 "//ui/gfx/x",
117 ]
[email protected]22fe91d2014-08-12 17:07:12118 }
dyen2ce3e052016-03-09 21:03:49119
brettwb78fc9e2016-03-25 21:02:51120 if (use_ozone) {
121 deps += [ "//ui/ozone" ]
122 }
123
dyen2ce3e052016-03-09 21:03:49124 if (enable_vulkan) {
125 deps += [ "//gpu/vulkan" ]
126 }
Julien Isorceb6623502017-11-28 12:20:40127
Stephen Lanham28a49d52017-11-30 01:53:37128 # Use DRI on desktop Linux builds.
Junliang Yan94273ef2018-02-05 22:25:24129 if (current_cpu != "s390x" && current_cpu != "ppc64" && is_desktop_linux &&
Junliang Yan15ac1732018-02-02 02:25:44130 (!is_chromecast || is_cast_desktop_build)) {
Julien Isorceb6623502017-11-28 12:20:40131 configs += [ "//build/config/linux/dri" ]
132 }
[email protected]dab154ee2014-06-13 23:48:50133}