Upstream version 10.39.225.0
[platform/framework/web/crosswalk.git] / src / content / common / BUILD.gn
1 # 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
5 import("//build/config/features.gni")
6 import("//build/config/ui.gni")
7 import("//content/common/common.gni")
8 import("//mojo/public/tools/bindings/mojom.gni")
9
10 source_set("common") {
11   # Only the public target should depend on this. All other targets (even
12   # internal content ones) should depend on the public one.
13   visibility = [ "//content/public/common:common_sources" ]
14
15   sources = rebase_path(content_common_gypi_values.private_common_sources,
16                         ".", "//content")
17
18   configs += [
19     "//content:content_implementation",
20   ]
21
22   public_deps = [
23     "//gpu/command_buffer/common",
24     "//third_party/WebKit/public:blink_headers",
25   ]
26   deps = [
27     "//base",
28     "//build/util:webkit_version",
29     "//components/tracing",
30     "//gpu/command_buffer/client:gles2_interface",
31     "//net",
32     "//skia",
33     "//third_party/icu",
34     "//ui/accessibility",
35     "//ui/base",
36     "//ui/gfx",
37     "//ui/gfx/geometry",
38     "//ui/gfx/ipc",
39     "//ui/shell_dialogs",
40     "//url",
41     "//third_party/libjingle",
42   ]
43
44   if (!is_ios) {
45     deps += [
46       "//cc",
47       "//ipc",
48       "//ipc/mojo",
49       # TODO: the dependency on gl_in_process_context should be decoupled from
50       # content and moved to android_webview. See crbug.com/365797.
51       "//gpu/command_buffer/client:gl_in_process_context",
52       "//gpu/command_buffer/client:gles2_c_lib",
53       "//gpu/command_buffer/client:gles2_cmd_helper",
54       "//gpu/command_buffer/client:gles2_implementation",
55       "//gpu/command_buffer/service",
56       "//gpu/ipc",
57       "//gpu/skia_bindings",
58       "//media",
59       "//media:shared_memory_support",
60       "//mojo/environment:chromium",
61       "//mojo/public/interfaces/application",
62       "//mojo/system",
63       "//sandbox",
64       "//storage/browser",
65       "//storage/common",
66       "//third_party/WebKit/public:blink",
67       "//ui/gl",
68       "//webkit/common/gpu",
69     ]
70   }
71
72   defines = []
73   include_dirs = []
74   libs = []
75   ldflags = []
76
77   if (is_android && use_seccomp_bpf) {
78     set_sources_assignment_filter([])
79     sources += [
80       "sandbox_linux/sandbox_bpf_base_policy_linux.cc",
81       "sandbox_linux/sandbox_bpf_base_policy_linux.h",
82     ]
83     set_sources_assignment_filter(sources_assignment_filter)
84   }
85
86   if (is_mac) {
87     sources += [
88       "gpu/client/gpu_memory_buffer_impl_io_surface.cc",
89       "gpu/client/gpu_memory_buffer_impl_io_surface.h",
90     ]
91     sources -= [
92       "plugin_list_posix.cc",
93     ]
94
95     deps += [
96       "//content/app/resources",
97       "//content:resources",
98       "//third_party/WebKit/public:resources",
99     ]
100     libs += [ "QuartzCore.framework" ]
101   }
102
103   if (is_android) {
104     sources += [
105       "gpu/client/gpu_memory_buffer_impl_surface_texture.cc",
106       "gpu/client/gpu_memory_buffer_impl_surface_texture.h",
107     ]
108
109     deps += [
110       "//content/public/android:jni",
111       "//content/public/android:common_aidl",
112     ]
113
114     libs += [ "android" ]
115   }
116
117   if (is_ios) {
118     sources -= [ "user_agent.cc" ]
119     assert(false, "Need to add lots of conditions here")
120   }
121
122   if (!use_ozone) {
123     sources -= [
124       "cursors/webcursor_ozone.cc",
125       "font_list_ozone.cc",
126       "gpu/gpu_memory_buffer_factory_ozone.cc",
127     ]
128   }
129
130   if (!use_aura) {
131     sources -= [ "cursors/webcursor_aura.cc" ]
132   }
133
134   if (!use_aura || !use_x11) {
135     sources -= [ "cursors/webcursor_aurax11.cc" ]
136   }
137
138   if (use_pango) {
139     configs += [ "//build/config/linux:pangocairo" ]
140     if (use_ozone) {
141       # If we're using pango, never use this ozone file (it was removed in all
142       # non-ozone cases above).
143       sources -= [ "font_list_ozone.cc" ]
144     }
145   } else {
146     sources -= [
147       "font_list_pango.cc",
148     ]
149   }
150
151   if (use_x11) {
152     sources += [
153       "gpu/gpu_memory_buffer_factory_x11_pixmap.cc",
154       "common/gpu/gpu_memory_buffer_factory_x11_pixmap.h",
155     ]
156     include_dirs += [ "//third_party/khronos" ]
157     configs += [ "//build/config/linux:xcomposite" ]
158
159     if (cpu_arch != "arm" || !is_chromeos) {
160       sources +=[
161         "gpu/x_util.cc",
162         "gpu/x_util.h",
163       ]
164     }
165   } else {
166     sources -= [
167       "gpu/gpu_memory_buffer_factory_x11.cc",
168     ]
169   }
170
171   if (enable_plugins) {
172     deps += [
173       "//ppapi:ppapi_shared",
174     ]
175   } else {
176     sources -= [
177       "pepper_file_util.cc",
178       "pepper_file_util.h",
179       "pepper_messages.h",
180       "pepper_plugin_list.cc",
181       "pepper_plugin_list.h",
182       "pepper_renderer_instance_data.cc",
183       "pepper_renderer_instance_data.h",
184       "plugin_list.cc",
185       "plugin_list.h",
186       "plugin_list_posix.cc",
187       "sandbox_util.cc",
188     ]
189   }
190
191   if (is_android) {
192     sources += [
193       "gpu/media/android_video_decode_accelerator.cc",
194       "gpu/media/android_video_decode_accelerator.h",
195     ]
196
197     if (enable_webrtc) {
198       deps += [ "//third_party/libyuv" ]
199     }
200   }
201
202   if (is_chromeos && use_x11) {
203     if (cpu_arch == "arm") {
204       sources += [
205         "gpu/media/exynos_v4l2_video_device.cc",
206         "gpu/media/exynos_v4l2_video_device.h",
207         "gpu/media/tegra_v4l2_video_device.cc",
208         "gpu/media/tegra_v4l2_video_device.h",
209         "gpu/media/v4l2_image_processor.cc",
210         "gpu/media/v4l2_image_processor.h",
211         "gpu/media/v4l2_video_decode_accelerator.cc",
212         "gpu/media/v4l2_video_decode_accelerator.h",
213         "gpu/media/v4l2_video_device.cc",
214         "gpu/media/v4l2_video_device.h",
215         "gpu/media/v4l2_video_encode_accelerator.cc",
216         "gpu/media/v4l2_video_encode_accelerator.h",
217       ]
218       libs = [ "EGL", "GLESv2" ]
219     } else {  # !arm
220       sources += [
221         "gpu/media/h264_dpb.cc",
222         "gpu/media/h264_dpb.h",
223         "gpu/media/va_surface.h",
224         "gpu/media/vaapi_h264_decoder.cc",
225         "gpu/media/vaapi_h264_decoder.h",
226         "gpu/media/vaapi_video_decode_accelerator.cc",
227         "gpu/media/vaapi_video_decode_accelerator.h",
228         "gpu/media/vaapi_wrapper.cc",
229         "gpu/media/vaapi_wrapper.h",
230       ]
231       assert(false, "Implement generate_stubs for libva")
232     }
233   }
234
235   if (is_win) {
236     sources += [
237       "gpu/media/dxva_video_decode_accelerator.cc",
238       "gpu/media/dxva_video_decode_accelerator.h",
239     ]
240     include_dirs += [ "//third_party/khronos" ]
241     deps += [
242       "//ui/gl",
243     ]
244
245     # TODO(GYP): extract_xinput action.
246   }
247
248   if (!is_win || !use_aura) {
249     sources -= [ "cursors/webcursor_aurawin.cc" ]
250   }
251
252   if (use_seccomp_bpf) {
253     defines += [ "USE_SECCOMP_BPF" ]
254   } else {
255     if (is_linux) {
256       sources -= [
257         "sandbox_linux/bpf_cros_arm_gpu_policy_linux.cc",
258         "sandbox_linux/bpf_cros_arm_gpu_policy_linux.h",
259         "sandbox_linux/bpf_gpu_policy_linux.cc",
260         "sandbox_linux/bpf_gpu_policy_linux.h",
261         "sandbox_linux/bpf_ppapi_policy_linux.cc",
262         "sandbox_linux/bpf_ppapi_policy_linux.h",
263         "sandbox_linux/bpf_renderer_policy_linux.cc",
264         "sandbox_linux/bpf_renderer_policy_linux.h",
265         "sandbox_linux/bpf_utility_policy_linux.cc",
266         "sandbox_linux/bpf_utility_policy_linux.h",
267         "sandbox_linux/sandbox_bpf_base_policy_linux.cc",
268         "sandbox_linux/sandbox_bpf_base_policy_linux.h",
269       ]
270     }
271     if (is_android) {
272       sources -= [
273         "sandbox_linux/android/sandbox_bpf_base_policy_android.cc",
274         "sandbox_linux/android/sandbox_bpf_base_policy_android.h",
275       ]
276     }
277   }
278 }
279
280 mojom("mojo_bindings") {
281   sources = [
282     "render_frame_setup.mojom",
283   ]
284
285   deps = [
286     "//mojo/public/interfaces/application:application",
287   ]
288 }