| # Copyright 2014 The Chromium Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| import("//build/config/features.gni") |
| import("//build/config/ui.gni") |
| import("//content/common/common.gni") |
| import("//third_party/mojo/src/mojo/public/tools/bindings/mojom.gni") |
| if (is_mac) { |
| import("//build/config/mac/mac_sdk.gni") |
| } |
| |
| if (is_chromeos && current_cpu != "arm") { |
| action("libva_generate_stubs") { |
| extra_header = "gpu/media/va_stub_header.fragment" |
| |
| script = "../../tools/generate_stubs/generate_stubs.py" |
| sources = [ |
| "gpu/media/va.sigs", |
| ] |
| inputs = [ |
| extra_header, |
| ] |
| if (use_x11) { |
| sources += [ "gpu/media/va_x11.sigs" ] |
| } |
| if (use_ozone) { |
| sources += [ "gpu/media/va_drm.sigs" ] |
| } |
| stubs_filename_root = "va_stubs" |
| |
| outputs = [ |
| "$target_gen_dir/gpu/media/$stubs_filename_root.cc", |
| "$target_gen_dir/gpu/media/$stubs_filename_root.h", |
| ] |
| args = [ |
| "-i", |
| rebase_path("$target_gen_dir/gpu/media", root_build_dir), |
| "-o", |
| rebase_path("$target_gen_dir/gpu/media", root_build_dir), |
| "-t", |
| "posix_stubs", |
| "-e", |
| rebase_path(extra_header, root_build_dir), |
| "-s", |
| stubs_filename_root, |
| "-p", |
| "content/common/gpu/media", |
| ] |
| |
| args += rebase_path(sources, root_build_dir) |
| } |
| } |
| |
| if (is_chromeos && use_v4lplugin) { |
| action("libv4l2_generate_stubs") { |
| extra_header = "gpu/media/v4l2_stub_header.fragment" |
| |
| script = "../../tools/generate_stubs/generate_stubs.py" |
| sources = [ |
| "gpu/media/v4l2.sig", |
| ] |
| inputs = [ |
| extra_header, |
| ] |
| stubs_filename_root = "v4l2_stubs" |
| |
| outputs = [ |
| "$target_gen_dir/gpu/media/$stubs_filename_root.cc", |
| "$target_gen_dir/gpu/media/$stubs_filename_root.h", |
| ] |
| args = [ |
| "-i", |
| rebase_path("$target_gen_dir/gpu/media", root_build_dir), |
| "-o", |
| rebase_path("$target_gen_dir/gpu/media", root_build_dir), |
| "-t", |
| "posix_stubs", |
| "-e", |
| rebase_path(extra_header, root_build_dir), |
| "-s", |
| stubs_filename_root, |
| "-p", |
| "content/common/gpu/media", |
| ] |
| |
| args += rebase_path(sources, root_build_dir) |
| } |
| } |
| |
| if (is_mac) { |
| action("libvt_generate_stubs") { |
| extra_header = "gpu/media/vt_stubs_header.fragment" |
| |
| script = "../../tools/generate_stubs/generate_stubs.py" |
| sources = [ |
| "gpu/media/vt.sig", |
| ] |
| inputs = [ |
| extra_header, |
| ] |
| stubs_filename_root = "vt_stubs" |
| |
| outputs = [ |
| "$target_gen_dir/gpu/media/$stubs_filename_root.cc", |
| "$target_gen_dir/gpu/media/$stubs_filename_root.h", |
| ] |
| args = [ |
| "-i", |
| rebase_path("$target_gen_dir/gpu/media", root_build_dir), |
| "-o", |
| rebase_path("$target_gen_dir/gpu/media", root_build_dir), |
| "-t", |
| "posix_stubs", |
| "-e", |
| rebase_path(extra_header, root_build_dir), |
| "-s", |
| stubs_filename_root, |
| "-p", |
| "content/common/gpu/media", |
| ] |
| |
| args += rebase_path(sources, root_build_dir) |
| } |
| } |
| |
| source_set("common") { |
| # Only the public target should depend on this. All other targets (even |
| # internal content ones) should depend on the public one. |
| visibility = [ "//content/public/common:common_sources" ] |
| |
| sources = rebase_path(content_common_gypi_values.private_common_sources, |
| ".", |
| "//content") |
| |
| configs += [ |
| "//content:content_implementation", |
| "//build/config:precompiled_headers", |
| "//build/config/compiler:no_size_t_to_int_warning", |
| ] |
| |
| public_deps = [ |
| "//gpu/command_buffer/common", |
| "//third_party/WebKit/public:blink_headers", |
| ] |
| deps = [ |
| "//base", |
| "//build/util:webkit_version", |
| "//components/tracing", |
| "//components/tracing:startup_tracing", |
| "//gpu/command_buffer/client:gles2_interface", |
| "//gpu/command_buffer/common:gles2_utils", |
| "//net", |
| "//skia", |
| "//third_party/icu", |
| "//ui/accessibility", |
| "//ui/base", |
| "//ui/base/ime", |
| "//ui/events/ipc:events_ipc", |
| "//ui/gfx", |
| "//ui/gfx/geometry", |
| "//ui/gfx/ipc", |
| "//ui/shell_dialogs", |
| "//url", |
| "//third_party/libjingle", |
| ] |
| |
| if (!is_ios) { |
| deps += [ |
| "//cc", |
| "//device/bluetooth", |
| "//ipc", |
| "//ipc/mojo", |
| |
| # TODO: the dependency on gl_in_process_context should be decoupled from |
| # content and moved to android_webview. See crbug.com/365797. |
| "//gpu/blink", |
| "//gpu/command_buffer/client:gl_in_process_context", |
| "//gpu/command_buffer/client:gles2_c_lib", |
| "//gpu/command_buffer/client:gles2_cmd_helper", |
| "//gpu/command_buffer/client:gles2_implementation", |
| "//gpu/command_buffer/service", |
| "//gpu/ipc", |
| "//gpu/skia_bindings", |
| "//media", |
| "//media/midi", |
| "//media:shared_memory_support", |
| "//mojo/application/public/interfaces", |
| "//mojo/common:common_base", |
| "//mojo/environment:chromium", |
| "//sandbox", |
| "//storage/common", |
| "//third_party/WebKit/public:blink", |
| "//third_party/mojo/src/mojo/edk/system", |
| "//ui/gl", |
| ":mojo_bindings", |
| ] |
| } |
| |
| defines = [] |
| include_dirs = [] |
| libs = [] |
| ldflags = [] |
| |
| if (is_android && use_seccomp_bpf) { |
| set_sources_assignment_filter([]) |
| sources += [ |
| "sandbox_linux/sandbox_bpf_base_policy_linux.cc", |
| "sandbox_linux/sandbox_bpf_base_policy_linux.h", |
| ] |
| set_sources_assignment_filter(sources_assignment_filter) |
| } |
| |
| if (is_mac) { |
| sources += [ |
| "gpu/client/gpu_memory_buffer_impl_io_surface.cc", |
| "gpu/client/gpu_memory_buffer_impl_io_surface.h", |
| "gpu/gpu_memory_buffer_factory_io_surface.cc", |
| "gpu/gpu_memory_buffer_factory_io_surface.h", |
| "gpu/media/vt.h", |
| "gpu/media/vt_video_decode_accelerator.cc", |
| "gpu/media/vt_video_decode_accelerator.h", |
| ] + get_target_outputs(":libvt_generate_stubs") |
| |
| sources -= [ "plugin_list_posix.cc" ] |
| |
| deps += [ |
| ":libvt_generate_stubs", |
| "//content/app/resources", |
| "//content:resources", |
| "//third_party/WebKit/public:image_resources", |
| "//third_party/WebKit/public:resources", |
| "//ui/accelerated_widget_mac", |
| ] |
| lib_dirs = [ "$mac_sdk_path/usr/lib" ] |
| libs += [ |
| "IOSurface.framework", |
| "OpenGL.framework", |
| "QuartzCore.framework", |
| "sandbox", |
| ] |
| } |
| |
| if (is_android) { |
| sources += [ |
| "gpu/client/gpu_memory_buffer_impl_surface_texture.cc", |
| "gpu/client/gpu_memory_buffer_impl_surface_texture.h", |
| "gpu/gpu_memory_buffer_factory_surface_texture.cc", |
| "gpu/gpu_memory_buffer_factory_surface_texture.h", |
| ] |
| |
| deps += [ |
| "//content/public/android:jni", |
| "//content/public/android:common_aidl", |
| ] |
| |
| libs += [ "android" ] |
| } |
| |
| if (is_debug && !is_component_build) { |
| # Content depends on the PPAPI message logging stuff; if this isn't here, |
| # some unit test binaries won't compile. This only worked in release mode |
| # because logging is disabled there. |
| deps += [ "//ppapi/proxy:ipc_sources" ] |
| } |
| |
| if (is_ios) { |
| sources -= [ "user_agent.cc" ] |
| assert(false, "Need to add lots of conditions here") |
| } |
| |
| if (use_ozone) { |
| deps += [ |
| "//ui/ozone:ozone", |
| "//ui/ozone:ozone_base", |
| ] |
| } else { |
| sources -= [ |
| "cursors/webcursor_ozone.cc", |
| "font_list_ozone.cc", |
| "gpu/client/gpu_memory_buffer_impl_ozone_native_pixmap.cc", |
| "gpu/client/gpu_memory_buffer_impl_ozone_native_pixmap.h", |
| "gpu/gpu_memory_buffer_factory_ozone_native_pixmap.cc", |
| "gpu/gpu_memory_buffer_factory_ozone_native_pixmap.h", |
| ] |
| } |
| |
| if (!use_aura || is_android) { |
| sources -= [ "cursors/webcursor_aura.cc" ] |
| } |
| |
| if (!use_aura || !use_x11) { |
| sources -= [ "cursors/webcursor_aurax11.cc" ] |
| } |
| |
| if (use_pango) { |
| configs += [ "//build/config/linux:pangocairo" ] |
| if (use_ozone) { |
| # If we're using pango, never use this ozone file (it was removed in all |
| # non-ozone cases above). |
| sources -= [ "font_list_ozone.cc" ] |
| } |
| } else { |
| sources -= [ "font_list_pango.cc" ] |
| } |
| |
| if (use_x11) { |
| configs += [ |
| "//build/config/linux:xcomposite", |
| "//third_party/khronos:khronos_headers", |
| ] |
| |
| if (current_cpu != "arm" || !is_chromeos) { |
| sources += [ "gpu/x_util.h" ] |
| } |
| } |
| |
| if (enable_plugins) { |
| deps += [ "//ppapi/shared_impl" ] |
| } else { |
| sources -= [ |
| "pepper_file_util.cc", |
| "pepper_file_util.h", |
| "pepper_messages.h", |
| "pepper_plugin_list.cc", |
| "pepper_plugin_list.h", |
| "pepper_renderer_instance_data.cc", |
| "pepper_renderer_instance_data.h", |
| "plugin_list.cc", |
| "plugin_list.h", |
| "plugin_list_posix.cc", |
| "sandbox_util.cc", |
| ] |
| } |
| |
| if (is_android) { |
| sources += [ |
| "gpu/media/android_copying_backing_strategy.cc", |
| "gpu/media/android_copying_backing_strategy.h", |
| "gpu/media/android_video_decode_accelerator.cc", |
| "gpu/media/android_video_decode_accelerator.h", |
| "gpu/media/avda_return_on_failure.h", |
| ] |
| |
| if (enable_webrtc) { |
| deps += [ "//third_party/libyuv" ] |
| } |
| } |
| |
| if (is_chromeos) { |
| sources += [ |
| "gpu/media/accelerated_video_decoder.h", |
| "gpu/media/h264_decoder.cc", |
| "gpu/media/h264_decoder.h", |
| "gpu/media/h264_dpb.cc", |
| "gpu/media/h264_dpb.h", |
| "gpu/media/vp8_decoder.cc", |
| "gpu/media/vp8_decoder.h", |
| "gpu/media/vp8_picture.cc", |
| "gpu/media/vp8_picture.h", |
| "gpu/media/vp9_decoder.cc", |
| "gpu/media/vp9_decoder.h", |
| "gpu/media/vp9_picture.cc", |
| "gpu/media/vp9_picture.h", |
| ] |
| if (use_v4lplugin) { |
| defines += [ "USE_LIBV4L2" ] |
| sources += get_target_outputs(":libv4l2_generate_stubs") |
| deps += [ ":libv4l2_generate_stubs" ] |
| } |
| if (use_v4l2_codec) { |
| defines += [ "USE_V4L2_CODEC" ] |
| sources += [ |
| "gpu/media/generic_v4l2_device.cc", |
| "gpu/media/generic_v4l2_device.h", |
| "gpu/media/v4l2_device.cc", |
| "gpu/media/v4l2_device.h", |
| "gpu/media/v4l2_image_processor.cc", |
| "gpu/media/v4l2_image_processor.h", |
| "gpu/media/v4l2_jpeg_decode_accelerator.cc", |
| "gpu/media/v4l2_jpeg_decode_accelerator.h", |
| "gpu/media/v4l2_slice_video_decode_accelerator.cc", |
| "gpu/media/v4l2_slice_video_decode_accelerator.h", |
| "gpu/media/v4l2_video_decode_accelerator.cc", |
| "gpu/media/v4l2_video_decode_accelerator.h", |
| "gpu/media/v4l2_video_encode_accelerator.cc", |
| "gpu/media/v4l2_video_encode_accelerator.h", |
| ] |
| libs = [ |
| "EGL", |
| "GLESv2", |
| ] |
| } |
| if (current_cpu == "arm") { |
| sources += [ |
| "gpu/media/tegra_v4l2_device.cc", |
| "gpu/media/tegra_v4l2_device.h", |
| ] |
| } |
| if (current_cpu != "arm") { |
| sources += [ |
| "gpu/media/va_surface.h", |
| "gpu/media/vaapi_jpeg_decode_accelerator.cc", |
| "gpu/media/vaapi_jpeg_decode_accelerator.h", |
| "gpu/media/vaapi_jpeg_decoder.cc", |
| "gpu/media/vaapi_jpeg_decoder.h", |
| "gpu/media/vaapi_picture.cc", |
| "gpu/media/vaapi_picture.h", |
| "gpu/media/vaapi_video_decode_accelerator.cc", |
| "gpu/media/vaapi_video_decode_accelerator.h", |
| "gpu/media/vaapi_video_encode_accelerator.cc", |
| "gpu/media/vaapi_video_encode_accelerator.h", |
| "gpu/media/vaapi_wrapper.cc", |
| "gpu/media/vaapi_wrapper.h", |
| ] + get_target_outputs(":libva_generate_stubs") |
| configs += [ |
| "//third_party/libva:libva_config", |
| "//third_party/libyuv:libyuv_config", |
| ] |
| deps += [ |
| ":libva_generate_stubs", |
| "//media", |
| "//third_party/libyuv", |
| ] |
| if (use_x11) { |
| sources += [ |
| "gpu/media/vaapi_tfp_picture.cc", |
| "gpu/media/vaapi_tfp_picture.h", |
| ] |
| } |
| if (use_ozone) { |
| sources += [ |
| "gpu/media/vaapi_drm_picture.cc", |
| "gpu/media/vaapi_drm_picture.h", |
| ] |
| } |
| } |
| } |
| |
| if (is_win) { |
| sources += [ |
| "gpu/media/dxva_video_decode_accelerator.cc", |
| "gpu/media/dxva_video_decode_accelerator.h", |
| ] |
| configs += [ "//third_party/khronos:khronos_headers" ] |
| deps += [ "//ui/gl" ] |
| libs += [ |
| "d3d9.lib", |
| "d3d11.lib", |
| "dxva2.lib", |
| "strmiids.lib", |
| "mf.lib", |
| "mfplat.lib", |
| "mfuuid.lib", |
| ] |
| ldflags += [ |
| "/DELAYLOAD:d3d9.dll", |
| "/DELAYLOAD:d3d11.dll", |
| "/DELAYLOAD:dxva2.dll", |
| "/DELAYLOAD:mf.dll", |
| "/DELAYLOAD:mfplat.dll", |
| ] |
| |
| # TODO(GYP): extract_xinput action. |
| } |
| |
| if (!is_win || !use_aura) { |
| sources -= [ "cursors/webcursor_aurawin.cc" ] |
| } |
| |
| if (use_seccomp_bpf) { |
| defines += [ "USE_SECCOMP_BPF" ] |
| } else { |
| if (is_linux) { |
| sources -= [ |
| "sandbox_linux/bpf_cros_arm_gpu_policy_linux.cc", |
| "sandbox_linux/bpf_cros_arm_gpu_policy_linux.h", |
| "sandbox_linux/bpf_gpu_policy_linux.cc", |
| "sandbox_linux/bpf_gpu_policy_linux.h", |
| "sandbox_linux/bpf_ppapi_policy_linux.cc", |
| "sandbox_linux/bpf_ppapi_policy_linux.h", |
| "sandbox_linux/bpf_renderer_policy_linux.cc", |
| "sandbox_linux/bpf_renderer_policy_linux.h", |
| "sandbox_linux/bpf_utility_policy_linux.cc", |
| "sandbox_linux/bpf_utility_policy_linux.h", |
| "sandbox_linux/sandbox_bpf_base_policy_linux.cc", |
| "sandbox_linux/sandbox_bpf_base_policy_linux.h", |
| ] |
| } |
| if (is_android) { |
| sources -= [ |
| "sandbox_linux/android/sandbox_bpf_base_policy_android.cc", |
| "sandbox_linux/android/sandbox_bpf_base_policy_android.h", |
| ] |
| } |
| } |
| } |
| |
| mojom("mojo_bindings") { |
| sources = [ |
| "application_setup.mojom", |
| "background_sync_service.mojom", |
| "geolocation_service.mojom", |
| "image_downloader/image_downloader.mojom", |
| "permission_service.mojom", |
| "presentation/presentation_service.mojom", |
| "process_control.mojom", |
| "render_frame_setup.mojom", |
| "service_port_service.mojom", |
| "service_worker/embedded_worker_setup.mojom", |
| "vr_service.mojom", |
| ] |
| |
| import_dirs = [ "//mojo/services" ] |
| |
| deps = [ |
| "//content/public/common:mojo_bindings", |
| "//mojo/application/public/interfaces", |
| "//skia/public/interfaces", |
| "//ui/mojo/geometry:interfaces", |
| ] |
| } |