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.
5 import("//build/config/features.gni")
6 import("//build/config/ui.gni")
7 import("//content/common/common.gni")
8 import("//third_party/mojo/src/mojo/public/tools/bindings/mojom.gni")
10 if (is_chromeos && current_cpu != "arm") {
11 action("libva_generate_stubs") {
12 extra_header = "gpu/media/va_stub_header.fragment"
14 script = "../../tools/generate_stubs/generate_stubs.py"
22 sources += [ "gpu/media/va_x11.sigs" ]
25 sources += [ "gpu/media/va_drm.sigs" ]
27 stubs_filename_root = "va_stubs"
30 "$target_gen_dir/gpu/media/$stubs_filename_root.cc",
31 "$target_gen_dir/gpu/media/$stubs_filename_root.h",
35 rebase_path("$target_gen_dir/gpu/media", root_build_dir),
37 rebase_path("$target_gen_dir/gpu/media", root_build_dir),
41 rebase_path(extra_header, root_build_dir),
45 "content/common/gpu/media",
48 args += rebase_path(sources, root_build_dir)
52 if (is_chromeos && use_v4lplugin) {
53 action("libv4l2_generate_stubs") {
54 extra_header = "gpu/media/v4l2_stub_header.fragment"
56 script = "../../tools/generate_stubs/generate_stubs.py"
63 stubs_filename_root = "v4l2_stubs"
66 "$target_gen_dir/gpu/media/$stubs_filename_root.cc",
67 "$target_gen_dir/gpu/media/$stubs_filename_root.h",
71 rebase_path("$target_gen_dir/gpu/media", root_build_dir),
73 rebase_path("$target_gen_dir/gpu/media", root_build_dir),
77 rebase_path(extra_header, root_build_dir),
81 "content/common/gpu/media",
84 args += rebase_path(sources, root_build_dir)
89 action("libvt_generate_stubs") {
90 extra_header = "gpu/media/vt_stubs_header.fragment"
92 script = "../../tools/generate_stubs/generate_stubs.py"
99 stubs_filename_root = "vt_stubs"
102 "$target_gen_dir/gpu/media/$stubs_filename_root.cc",
103 "$target_gen_dir/gpu/media/$stubs_filename_root.h",
107 rebase_path("$target_gen_dir/gpu/media", root_build_dir),
109 rebase_path("$target_gen_dir/gpu/media", root_build_dir),
113 rebase_path(extra_header, root_build_dir),
117 "content/common/gpu/media",
120 args += rebase_path(sources, root_build_dir)
124 source_set("common") {
125 # Only the public target should depend on this. All other targets (even
126 # internal content ones) should depend on the public one.
127 visibility = [ "//content/public/common:common_sources" ]
129 sources = rebase_path(content_common_gypi_values.private_common_sources,
134 "//content:content_implementation",
135 "//build/config/compiler:no_size_t_to_int_warning",
139 "//gpu/command_buffer/common",
140 "//third_party/WebKit/public:blink_headers",
144 "//build/util:webkit_version",
145 "//components/tracing",
146 "//gpu/command_buffer/client:gles2_interface",
147 "//gpu/command_buffer/common:gles2_utils",
151 "//ui/accessibility",
158 "//ui/shell_dialogs",
160 "//third_party/libjingle",
169 # TODO: the dependency on gl_in_process_context should be decoupled from
170 # content and moved to android_webview. See crbug.com/365797.
172 "//gpu/command_buffer/client:gl_in_process_context",
173 "//gpu/command_buffer/client:gles2_c_lib",
174 "//gpu/command_buffer/client:gles2_cmd_helper",
175 "//gpu/command_buffer/client:gles2_implementation",
176 "//gpu/command_buffer/service",
178 "//gpu/skia_bindings",
181 "//media:shared_memory_support",
182 "//mojo/environment:chromium",
185 "//third_party/WebKit/public:blink",
186 "//third_party/mojo/src/mojo/edk/system",
187 "//third_party/mojo/src/mojo/public/interfaces/application",
189 "//webkit/common/gpu",
198 if (is_android && use_seccomp_bpf) {
199 set_sources_assignment_filter([])
201 "sandbox_linux/sandbox_bpf_base_policy_linux.cc",
202 "sandbox_linux/sandbox_bpf_base_policy_linux.h",
204 set_sources_assignment_filter(sources_assignment_filter)
209 "gpu/client/gpu_memory_buffer_impl_io_surface.cc",
210 "gpu/client/gpu_memory_buffer_impl_io_surface.h",
211 "gpu/gpu_memory_buffer_factory_io_surface.cc",
212 "gpu/gpu_memory_buffer_factory_io_surface.h",
214 "gpu/media/vt_video_decode_accelerator.cc",
215 "gpu/media/vt_video_decode_accelerator.h",
216 ] + get_target_outputs(":libvt_generate_stubs")
218 sources -= [ "plugin_list_posix.cc" ]
221 ":libvt_generate_stubs",
222 "//content/app/resources",
223 "//content:resources",
224 "//third_party/WebKit/public:image_resources",
225 "//third_party/WebKit/public:resources",
226 "//ui/accelerated_widget_mac",
229 "IOSurface.framework",
231 "QuartzCore.framework",
237 "gpu/client/gpu_memory_buffer_impl_surface_texture.cc",
238 "gpu/client/gpu_memory_buffer_impl_surface_texture.h",
239 "gpu/gpu_memory_buffer_factory_surface_texture.cc",
240 "gpu/gpu_memory_buffer_factory_surface_texture.h",
244 "//content/public/android:jni",
245 "//content/public/android:common_aidl",
248 libs += [ "android" ]
251 if (is_debug && !is_component_build) {
252 # Content depends on the PPAPI message logging stuff; if this isn't here,
253 # some unit test binaries won't compile. This only worked in release mode
254 # because logging is disabled there.
255 deps += [ "//ppapi/proxy:ipc_sources" ]
259 sources -= [ "user_agent.cc" ]
260 assert(false, "Need to add lots of conditions here")
266 "//ui/ozone:ozone_base",
271 "cursors/webcursor_ozone.cc",
272 "font_list_ozone.cc",
273 "gpu/client/gpu_memory_buffer_impl_ozone_native_buffer.cc",
274 "gpu/client/gpu_memory_buffer_impl_ozone_native_buffer.h",
275 "gpu/gpu_memory_buffer_factory_ozone_native_buffer.cc",
276 "gpu/gpu_memory_buffer_factory_ozone_native_buffer.h",
281 sources -= [ "cursors/webcursor_aura.cc" ]
284 if (!use_aura || !use_x11) {
285 sources -= [ "cursors/webcursor_aurax11.cc" ]
289 configs += [ "//build/config/linux:pangocairo" ]
291 # If we're using pango, never use this ozone file (it was removed in all
292 # non-ozone cases above).
293 sources -= [ "font_list_ozone.cc" ]
296 sources -= [ "font_list_pango.cc" ]
301 "//build/config/linux:xcomposite",
302 "//third_party/khronos:khronos_headers",
305 if (current_cpu != "arm" || !is_chromeos) {
306 sources += [ "gpu/x_util.h" ]
310 if (enable_plugins) {
311 deps += [ "//ppapi/shared_impl" ]
314 "pepper_file_util.cc",
315 "pepper_file_util.h",
317 "pepper_plugin_list.cc",
318 "pepper_plugin_list.h",
319 "pepper_renderer_instance_data.cc",
320 "pepper_renderer_instance_data.h",
323 "plugin_list_posix.cc",
330 "gpu/media/android_video_decode_accelerator.cc",
331 "gpu/media/android_video_decode_accelerator.h",
335 deps += [ "//third_party/libyuv" ]
341 "gpu/media/accelerated_video_decoder.h",
342 "gpu/media/h264_decoder.cc",
343 "gpu/media/h264_decoder.h",
344 "gpu/media/h264_dpb.cc",
345 "gpu/media/h264_dpb.h",
348 defines += [ "USE_LIBV4L2" ]
349 sources += get_target_outputs(":libv4l2_generate_stubs")
350 deps += [ ":libv4l2_generate_stubs" ]
352 if (use_v4l2_codec) {
353 defines += [ "USE_V4L2_CODEC" ]
355 "gpu/media/generic_v4l2_device.cc",
356 "gpu/media/generic_v4l2_device.h",
357 "gpu/media/v4l2_device.cc",
358 "gpu/media/v4l2_device.h",
359 "gpu/media/v4l2_image_processor.cc",
360 "gpu/media/v4l2_image_processor.h",
361 "gpu/media/v4l2_slice_video_decode_accelerator.cc",
362 "gpu/media/v4l2_slice_video_decode_accelerator.h",
363 "gpu/media/v4l2_video_decode_accelerator.cc",
364 "gpu/media/v4l2_video_decode_accelerator.h",
365 "gpu/media/v4l2_video_encode_accelerator.cc",
366 "gpu/media/v4l2_video_encode_accelerator.h",
367 "gpu/media/vp8_decoder.cc",
368 "gpu/media/vp8_decoder.h",
369 "gpu/media/vp8_picture.cc",
370 "gpu/media/vp8_picture.h",
377 if (current_cpu == "arm") {
379 "gpu/media/tegra_v4l2_device.cc",
380 "gpu/media/tegra_v4l2_device.h",
383 if (current_cpu != "arm") {
385 "gpu/media/va_surface.h",
386 "gpu/media/vaapi_picture.cc",
387 "gpu/media/vaapi_picture.h",
388 "gpu/media/vaapi_video_decode_accelerator.cc",
389 "gpu/media/vaapi_video_decode_accelerator.h",
390 "gpu/media/vaapi_video_encode_accelerator.cc",
391 "gpu/media/vaapi_video_encode_accelerator.h",
392 "gpu/media/vaapi_wrapper.cc",
393 "gpu/media/vaapi_wrapper.h",
394 ] + get_target_outputs(":libva_generate_stubs")
396 "//third_party/libva:libva_config",
397 "//third_party/libyuv:libyuv_config",
400 ":libva_generate_stubs",
402 "//third_party/libyuv",
406 "gpu/media/vaapi_tfp_picture.cc",
407 "gpu/media/vaapi_tfp_picture.h",
412 "gpu/media/vaapi_drm_picture.cc",
413 "gpu/media/vaapi_drm_picture.h",
421 "gpu/media/dxva_video_decode_accelerator.cc",
422 "gpu/media/dxva_video_decode_accelerator.h",
424 configs += [ "//third_party/khronos:khronos_headers" ]
425 deps += [ "//ui/gl" ]
436 "/DELAYLOAD:d3d9.dll",
437 "/DELAYLOAD:d3d11.dll",
438 "/DELAYLOAD:dxva2.dll",
440 "/DELAYLOAD:mfplat.dll",
443 # TODO(GYP): extract_xinput action.
446 if (!is_win || !use_aura) {
447 sources -= [ "cursors/webcursor_aurawin.cc" ]
450 if (use_seccomp_bpf) {
451 defines += [ "USE_SECCOMP_BPF" ]
455 "sandbox_linux/bpf_cros_arm_gpu_policy_linux.cc",
456 "sandbox_linux/bpf_cros_arm_gpu_policy_linux.h",
457 "sandbox_linux/bpf_gpu_policy_linux.cc",
458 "sandbox_linux/bpf_gpu_policy_linux.h",
459 "sandbox_linux/bpf_ppapi_policy_linux.cc",
460 "sandbox_linux/bpf_ppapi_policy_linux.h",
461 "sandbox_linux/bpf_renderer_policy_linux.cc",
462 "sandbox_linux/bpf_renderer_policy_linux.h",
463 "sandbox_linux/bpf_utility_policy_linux.cc",
464 "sandbox_linux/bpf_utility_policy_linux.h",
465 "sandbox_linux/sandbox_bpf_base_policy_linux.cc",
466 "sandbox_linux/sandbox_bpf_base_policy_linux.h",
471 "sandbox_linux/android/sandbox_bpf_base_policy_android.cc",
472 "sandbox_linux/android/sandbox_bpf_base_policy_android.h",
477 if (is_win && current_cpu == "x64") {
478 # TODO(jschuh): Remove this after crbug.com/173851 gets fixed.
479 cflags = [ "/bigobj" ]
483 mojom("mojo_bindings") {
485 "application_setup.mojom",
486 "background_sync_service.mojom",
487 "geolocation_service.mojom",
488 "permission_service.mojom",
489 "presentation/presentation_service.mojom",
490 "render_frame_setup.mojom",
494 "//content/public/common:mojo_bindings",
495 "//third_party/mojo/src/mojo/public/interfaces/application:application",