# 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.

gypi_values = exec_script(
    "//build/gypi_to_gn.py",
    [ rebase_path("ppapi_sources.gypi") ],
    "scope",
    [ "ppapi_sources.gypi" ])

# TODO(GYP) support chrome_multiple_dll
#if (chrome_multiple_dll) {
#  blink_target = "//third_party/WebKit/public:blink_minimal"
#} else {
#  blink_target = "//third_party/WebKit/public:blink"
#}

# These are just headers.
source_set("ppapi_c") {
  sources = gypi_values.c_source_files
}

source_set("ppapi_cpp_objects") {
  sources = gypi_values.cpp_source_files

  if (is_win) {
    cflags = [
      "/we4244",  # Implicit conversion, possible loss of data.
    ]
  } else {
    cflags = [
      "-Wextra",
      "-pedantic",
    ]
  }
}

source_set("ppapi_cpp") {
  sources = [
    "cpp/module_embedder.h",
    "cpp/ppp_entrypoints.cc",
  ]

  if (is_posix) {
    cflags = [
      "-Wextra",
      "-pedantic",
    ]
  }

  deps = [
    ":ppapi_c",
    ":ppapi_cpp_objects",
  ]
}

source_set("ppapi_gles2") {
  sources = [
    "lib/gl/gles2/gl2ext_ppapi.c",
    "lib/gl/gles2/gl2ext_ppapi.h",
    "lib/gl/gles2/gles2.c",
  ]

  include_dirs = [ "lib/gl/include" ]

  deps = [
    ":ppapi_c",
  ]
}

# TODO(brettw) argument list is too long. Need to add response files.
#shared_library("ppapi_tests") {
#  sources = gypi_values.test_common_source_files +
#            gypi_values.test_trusted_source_files
#
#  defines = [ "GL_GLEXT_PROTOTYPES" ]
#  include_dirs = [ "lib/gl/include" ]
#
#  deps = [
#    ":ppapi_cpp",
#    ":ppapi_shared",
#  ]
#}

component("ppapi_shared") {
  sources = [
    "shared_impl/array_var.cc",
    "shared_impl/array_var.h",
    "shared_impl/array_writer.cc",
    "shared_impl/array_writer.h",
    "shared_impl/callback_tracker.cc",
    "shared_impl/callback_tracker.h",
    "shared_impl/dictionary_var.cc",
    "shared_impl/dictionary_var.h",
    "shared_impl/file_io_state_manager.cc",
    "shared_impl/file_io_state_manager.h",
    "shared_impl/file_growth.cc",
    "shared_impl/file_growth.h",
    "shared_impl/file_path.cc",
    "shared_impl/file_path.h",
    "shared_impl/file_ref_create_info.cc",
    "shared_impl/file_ref_create_info.h",
    "shared_impl/file_ref_util.cc",
    "shared_impl/file_ref_util.h",
    "shared_impl/file_system_util.cc",
    "shared_impl/file_system_util.h",
    "shared_impl/file_type_conversion.cc",
    "shared_impl/file_type_conversion.h",
    "shared_impl/host_resource.cc",
    "shared_impl/host_resource.h",
    "shared_impl/id_assignment.cc",
    "shared_impl/id_assignment.h",
    "shared_impl/media_stream_buffer.h",
    "shared_impl/media_stream_buffer_manager.cc",
    "shared_impl/media_stream_buffer_manager.h",
    "shared_impl/media_stream_video_track_shared.h",
    "shared_impl/media_stream_video_track_shared.cc",
    "shared_impl/platform_file.cc",
    "shared_impl/platform_file.h",
    "shared_impl/ppapi_constants.h",
    "shared_impl/ppapi_globals.cc",
    "shared_impl/ppapi_globals.h",
    "shared_impl/ppapi_nacl_plugin_args.cc",
    "shared_impl/ppapi_nacl_plugin_args.h",
    "shared_impl/ppapi_permissions.cc",
    "shared_impl/ppapi_permissions.h",
    "shared_impl/ppapi_preferences.cc",
    "shared_impl/ppapi_preferences.h",
    "shared_impl/ppapi_switches.cc",
    "shared_impl/ppapi_switches.h",
    "shared_impl/ppb_audio_config_shared.cc",
    "shared_impl/ppb_audio_config_shared.h",
    "shared_impl/ppb_audio_shared.cc",
    "shared_impl/ppb_audio_shared.h",
    "shared_impl/ppb_crypto_shared.cc",
    "shared_impl/ppb_device_ref_shared.cc",
    "shared_impl/ppb_device_ref_shared.h",
    "shared_impl/ppb_gamepad_shared.cc",
    "shared_impl/ppb_gamepad_shared.h",
    "shared_impl/ppb_graphics_3d_shared.cc",
    "shared_impl/ppb_graphics_3d_shared.h",
    "shared_impl/ppb_image_data_shared.cc",
    "shared_impl/ppb_image_data_shared.h",
    "shared_impl/ppb_input_event_shared.cc",
    "shared_impl/ppb_input_event_shared.h",
    "shared_impl/ppb_instance_shared.cc",
    "shared_impl/ppb_instance_shared.h",
    "shared_impl/ppb_memory_shared.cc",
    "shared_impl/ppb_message_loop_shared.cc",
    "shared_impl/ppb_message_loop_shared.h",
    "shared_impl/ppb_opengles2_shared.cc",
    "shared_impl/ppb_opengles2_shared.h",
    "shared_impl/ppb_tcp_socket_shared.cc",
    "shared_impl/ppb_tcp_socket_shared.h",
    "shared_impl/ppb_trace_event_impl.cc",
    "shared_impl/ppb_trace_event_impl.h",
    "shared_impl/ppb_var_shared.cc",
    "shared_impl/ppb_var_shared.h",
    "shared_impl/ppb_view_shared.cc",
    "shared_impl/ppb_view_shared.h",
    "shared_impl/ppp_flash_browser_operations_shared.h",
    "shared_impl/ppp_instance_combined.cc",
    "shared_impl/ppp_instance_combined.h",
    "shared_impl/proxy_lock.cc",
    "shared_impl/proxy_lock.h",
    "shared_impl/resource.cc",
    "shared_impl/resource.h",
    "shared_impl/resource_tracker.cc",
    "shared_impl/resource_tracker.h",
    "shared_impl/resource_var.cc",
    "shared_impl/resource_var.h",
    "shared_impl/scoped_pp_resource.cc",
    "shared_impl/scoped_pp_resource.h",
    "shared_impl/scoped_pp_var.cc",
    "shared_impl/scoped_pp_var.h",
    "shared_impl/socket_option_data.cc",
    "shared_impl/socket_option_data.h",
    "shared_impl/thread_aware_callback.cc",
    "shared_impl/thread_aware_callback.h",
    "shared_impl/time_conversion.cc",
    "shared_impl/time_conversion.h",
    "shared_impl/tracked_callback.cc",
    "shared_impl/tracked_callback.h",
    "shared_impl/url_request_info_data.cc",
    "shared_impl/url_request_info_data.h",
    "shared_impl/url_response_info_data.cc",
    "shared_impl/url_response_info_data.h",
    "shared_impl/var.cc",
    "shared_impl/var.h",
    "shared_impl/var_tracker.cc",
    "shared_impl/var_tracker.h",
    # TODO(viettrungluu): Split these out; it won"t be used in NaCl.
    "shared_impl/private/net_address_private_impl.cc",
    "shared_impl/private/net_address_private_impl_constants.cc",
    "shared_impl/private/net_address_private_impl.h",

    "shared_impl/private/ppb_x509_certificate_private_shared.cc",
    "shared_impl/private/ppb_x509_certificate_private_shared.h",

    "thunk/enter.cc",
    "thunk/enter.h",
    "thunk/ppb_audio_api.h",
    "thunk/ppb_audio_config_api.h",
    "thunk/ppb_audio_config_thunk.cc",
    "thunk/ppb_audio_buffer_api.h",
    "thunk/ppb_audio_buffer_thunk.cc",
    "thunk/ppb_audio_input_api.h",
    "thunk/ppb_audio_thunk.cc",
    "thunk/ppb_broker_api.h",
    "thunk/ppb_browser_font_trusted_api.h",
    "thunk/ppb_buffer_api.h",
    "thunk/ppb_console_thunk.cc",
    "thunk/ppb_cursor_control_thunk.cc",
    "thunk/ppb_device_ref_api.h",
    "thunk/ppb_device_ref_dev_thunk.cc",
    "thunk/ppb_ext_crx_file_system_private_thunk.cc",
    "thunk/ppb_file_chooser_api.h",
    "thunk/ppb_file_chooser_dev_thunk.cc",
    "thunk/ppb_file_chooser_trusted_thunk.cc",
    "thunk/ppb_file_io_api.h",
    "thunk/ppb_file_io_private_thunk.cc",
    "thunk/ppb_file_io_thunk.cc",
    "thunk/ppb_file_mapping_thunk.cc",
    "thunk/ppb_file_ref_api.h",
    "thunk/ppb_file_ref_thunk.cc",
    "thunk/ppb_file_system_api.h",
    "thunk/ppb_file_system_thunk.cc",
    "thunk/ppb_find_private_thunk.cc",
    "thunk/ppb_flash_clipboard_api.h",
    "thunk/ppb_flash_drm_api.h",
    "thunk/ppb_flash_font_file_api.h",
    "thunk/ppb_flash_fullscreen_api.h",
    "thunk/ppb_flash_functions_api.h",
    "thunk/ppb_flash_menu_api.h",
    "thunk/ppb_flash_message_loop_api.h",
    "thunk/ppb_flash_print_thunk.cc",
    "thunk/ppb_fullscreen_thunk.cc",
    "thunk/ppb_gamepad_api.h",
    "thunk/ppb_gamepad_thunk.cc",
    "thunk/ppb_graphics_2d_api.h",
    "thunk/ppb_graphics_2d_thunk.cc",
    "thunk/ppb_graphics_3d_api.h",
    "thunk/ppb_graphics_3d_thunk.cc",
    "thunk/ppb_host_resolver_api.h",
    "thunk/ppb_host_resolver_thunk.cc",
    "thunk/ppb_host_resolver_private_api.h",
    "thunk/ppb_host_resolver_private_thunk.cc",
    "thunk/ppb_image_data_api.h",
    "thunk/ppb_image_data_thunk.cc",
    "thunk/ppb_input_event_api.h",
    "thunk/ppb_input_event_thunk.cc",
    "thunk/ppb_instance_api.h",
    "thunk/ppb_instance_private_thunk.cc",
    "thunk/ppb_instance_thunk.cc",
    "thunk/ppb_isolated_file_system_private_api.h",
    "thunk/ppb_isolated_file_system_private_thunk.cc",
    "thunk/ppb_media_stream_audio_track_api.h",
    "thunk/ppb_media_stream_audio_track_thunk.cc",
    "thunk/ppb_media_stream_video_track_api.h",
    "thunk/ppb_media_stream_video_track_thunk.cc",
    "thunk/ppb_message_loop_api.h",
    "thunk/ppb_messaging_thunk.cc",
    "thunk/ppb_mouse_cursor_thunk.cc",
    "thunk/ppb_mouse_lock_thunk.cc",
    "thunk/ppb_net_address_api.h",
    "thunk/ppb_net_address_thunk.cc",
    "thunk/ppb_network_list_api.h",
    "thunk/ppb_network_list_thunk.cc",
    "thunk/ppb_network_monitor_api.h",
    "thunk/ppb_network_monitor_thunk.cc",
    "thunk/ppb_network_proxy_api.h",
    "thunk/ppb_network_proxy_thunk.cc",
    "thunk/ppb_output_protection_api.h",
    "thunk/ppb_output_protection_private_thunk.cc",
    "thunk/ppb_pdf_api.h",
    "thunk/ppb_platform_verification_api.h",
    "thunk/ppb_printing_api.h",
    "thunk/ppb_printing_dev_thunk.cc",
    "thunk/ppb_scrollbar_api.h",
    "thunk/ppb_talk_private_api.h",
    "thunk/ppb_tcp_server_socket_private_api.h",
    "thunk/ppb_tcp_server_socket_private_thunk.cc",
    "thunk/ppb_tcp_socket_api.h",
    "thunk/ppb_tcp_socket_private_api.h",
    "thunk/ppb_tcp_socket_private_thunk.cc",
    "thunk/ppb_tcp_socket_thunk.cc",
    "thunk/ppb_text_input_thunk.cc",
    "thunk/ppb_truetype_font_api.h",
    "thunk/ppb_truetype_font_singleton_api.h",
    "thunk/ppb_truetype_font_dev_thunk.cc",
    "thunk/ppb_udp_socket_api.h",
    "thunk/ppb_udp_socket_thunk.cc",
    "thunk/ppb_udp_socket_private_api.h",
    "thunk/ppb_udp_socket_private_thunk.cc",
    "thunk/ppb_uma_private_thunk.cc",
    "thunk/ppb_uma_singleton_api.h",
    "thunk/ppb_url_loader_api.h",
    "thunk/ppb_url_loader_thunk.cc",
    "thunk/ppb_url_loader_trusted_thunk.cc",
    "thunk/ppb_url_request_info_api.h",
    "thunk/ppb_url_request_info_thunk.cc",
    "thunk/ppb_url_response_info_api.h",
    "thunk/ppb_url_response_info_thunk.cc",
    "thunk/ppb_var_array_thunk.cc",
    "thunk/ppb_var_dictionary_thunk.cc",
    "thunk/ppb_video_capture_api.h",
    "thunk/ppb_video_decoder_api.h",
    "thunk/ppb_video_decoder_dev_api.h",
    "thunk/ppb_video_destination_private_api.h",
    "thunk/ppb_video_destination_private_thunk.cc",
    "thunk/ppb_video_frame_api.h",
    "thunk/ppb_video_frame_thunk.cc",
    "thunk/ppb_video_source_private_api.h",
    "thunk/ppb_video_source_private_thunk.cc",
    "thunk/ppb_view_api.h",
    "thunk/ppb_view_dev_thunk.cc",
    "thunk/ppb_view_thunk.cc",
    "thunk/ppb_websocket_api.h",
    "thunk/ppb_websocket_thunk.cc",
    "thunk/ppb_widget_api.h",
    "thunk/ppb_widget_dev_thunk.cc",
    "thunk/ppb_x509_certificate_private_api.h",
    "thunk/ppb_x509_certificate_private_thunk.cc",
    "thunk/ppb_zoom_dev_thunk.cc",
    "thunk/thunk.h",
  ]

  if (!is_nacl) {
    sources += [
      "shared_impl/flash_clipboard_format_registry.cc",
      "shared_impl/flash_clipboard_format_registry.h",
      "shared_impl/ppb_url_util_shared.cc",
      "shared_impl/ppb_url_util_shared.h",
      "shared_impl/ppb_video_decoder_shared.cc",
      "shared_impl/ppb_video_decoder_shared.h",
      "shared_impl/private/ppb_char_set_shared.cc",
      "shared_impl/private/ppb_char_set_shared.h",
      "thunk/ppb_audio_input_dev_thunk.cc",
      "thunk/ppb_broker_thunk.cc",
      "thunk/ppb_browser_font_trusted_thunk.cc",
      "thunk/ppb_buffer_thunk.cc",
      "thunk/ppb_content_decryptor_private_thunk.cc",
      "thunk/ppb_char_set_thunk.cc",
      "thunk/ppb_flash_clipboard_thunk.cc",
      "thunk/ppb_flash_device_id_thunk.cc",
      "thunk/ppb_flash_drm_thunk.cc",
      "thunk/ppb_flash_file_fileref_thunk.cc",
      "thunk/ppb_flash_file_modulelocal_thunk.cc",
      "thunk/ppb_flash_font_file_thunk.cc",
      "thunk/ppb_flash_fullscreen_thunk.cc",
      "thunk/ppb_flash_menu_thunk.cc",
      "thunk/ppb_flash_thunk.cc",
      "thunk/ppb_flash_message_loop_thunk.cc",
      "thunk/ppb_gles_chromium_texture_mapping_thunk.cc",
      "thunk/ppb_pdf_thunk.cc",
      "thunk/ppb_platform_verification_private_thunk.cc",
      "thunk/ppb_scrollbar_thunk.cc",
      "thunk/ppb_talk_private_thunk.cc",
      "thunk/ppb_url_util_thunk.cc",
      "thunk/ppb_video_capture_thunk.cc",
      "thunk/ppb_video_decoder_dev_thunk.cc",
    ]
  }

  # We exclude a few more things for nacl_win64, to avoid pulling in more
  # dependencies.
  if (is_win && cpu_arch == "x64" && current_toolchain != default_toolchain) {
    sources -= [
      "shared_impl/ppb_audio_shared.cc",
      "shared_impl/ppb_graphics_3d_shared.cc",
      "shared_impl/ppb_opengles2_shared.cc",
      "shared_impl/private/ppb_host_resolver_shared.cc",
      "shared_impl/private/net_address_private_impl.cc",
      "thunk/ppb_graphics_3d_thunk.cc",
      "thunk/ppb_host_resolver_private_thunk.cc",
      "thunk/ppb_tcp_server_socket_private_thunk.cc",
      "thunk/ppb_tcp_socket_private_thunk.cc",
      "thunk/ppb_udp_socket_private_thunk.cc",
      "thunk/ppb_x509_certificate_private_thunk.cc",
    ]
  }

  defines = [
    "PPAPI_SHARED_IMPLEMENTATION",
    "PPAPI_THUNK_IMPLEMENTATION",
  ]

  deps = [
    ":ppapi_c",
    "//base",
    "//base:i18n",
    "//base/third_party/dynamic_annotations",
    "//gpu/command_buffer/client",
    "//gpu/command_buffer/client:gles2_implementation",
    "//gpu/command_buffer/common",
    "//ipc",
    #"//media:shared_memory_support",  TODO(GYP)
    "//skia",
    "//third_party/icu:icuuc",
    "//ui/surface",
    "//url",
  ]

  if (is_mac) {
    libs = [ "QuartzCore.framework" ]
  } else if (is_win) {
    cflags = [ "/wd4267" ]  # size_t to int truncation.
  }

  # TODO(GYP)
  #deps += [ blink_target ]
  #forward_dependent_configs_from = [ blink_target ]
}

source_set("ppapi_ipc") {
  sources = [
    "proxy/nacl_message_scanner.cc",
    "proxy/nacl_message_scanner.h",
    "proxy/ppapi_messages.cc",
    "proxy/ppapi_messages.h",
    "proxy/ppapi_param_traits.cc",
    "proxy/ppapi_param_traits.h",
    "proxy/raw_var_data.cc",
    "proxy/raw_var_data.h",
    "proxy/resource_message_params.cc",
    "proxy/resource_message_params.h",
    "proxy/serialized_flash_menu.cc",
    "proxy/serialized_flash_menu.h",
    "proxy/serialized_handle.cc",
    "proxy/serialized_handle.h",
    "proxy/serialized_structs.cc",
    "proxy/serialized_structs.h",
    "proxy/serialized_var.cc",
    "proxy/serialized_var.h",
    "proxy/var_serialization_rules.h",
  ]

  deps = [
    ":ppapi_c",
    ":ppapi_shared",
    "//base",
    "//gpu/ipc",
    "//ipc",
    "//skia",
  ]

  if (is_nacl) {
    sources -= [ "proxy/serialized_flash_menu.cc" ]
  }
}

component("ppapi_proxy") {
  sources = [
    # Take some standalone files from the C++ wrapper allowing us to more
    # easily make async callbacks in the proxy. We can"t depend on the
    # full C++ wrappers at this layer since the C++ wrappers expect
    # symbols defining the globals for "being a plugin" which we are not.
    # These callback files are standalone.
    "cpp/completion_callback.h",
    "utility/completion_callback_factory.h",

    "proxy/audio_buffer_resource.cc",
    "proxy/audio_buffer_resource.h",
    "proxy/broker_resource.cc",
    "proxy/broker_resource.h",
    "proxy/connection.h",
    "proxy/dispatcher.cc",
    "proxy/dispatcher.h",
    "proxy/enter_proxy.h",
    "proxy/error_conversion.cc",
    "proxy/error_conversion.h",
    "proxy/file_chooser_resource.cc",
    "proxy/file_chooser_resource.h",
    "proxy/file_io_resource.cc",
    "proxy/file_io_resource.h",
    "proxy/file_mapping_resource.cc",
    "proxy/file_mapping_resource.h",
    "proxy/file_mapping_resource_posix.cc",
    "proxy/file_mapping_resource_win.cc",
    "proxy/file_ref_resource.cc",
    "proxy/file_ref_resource.h",
    "proxy/file_system_resource.cc",
    "proxy/file_system_resource.h",
    "proxy/gamepad_resource.cc",
    "proxy/gamepad_resource.h",
    "proxy/graphics_2d_resource.cc",
    "proxy/graphics_2d_resource.h",
    "proxy/host_resolver_private_resource.cc",
    "proxy/host_resolver_private_resource.h",
    "proxy/host_resolver_resource.cc",
    "proxy/host_resolver_resource.h",
    "proxy/host_resolver_resource_base.cc",
    "proxy/host_resolver_resource_base.h",
    "proxy/interface_list.cc",
    "proxy/interface_list.h",
    "proxy/interface_proxy.cc",
    "proxy/interface_proxy.h",
    "proxy/isolated_file_system_private_resource.cc",
    "proxy/isolated_file_system_private_resource.h",
    "proxy/locking_resource_releaser.h",
    "proxy/media_stream_audio_track_resource.cc",
    "proxy/media_stream_audio_track_resource.h",
    "proxy/media_stream_track_resource_base.cc",
    "proxy/media_stream_track_resource_base.h",
    "proxy/media_stream_video_track_resource.cc",
    "proxy/media_stream_video_track_resource.h",
    "proxy/net_address_resource.cc",
    "proxy/net_address_resource.h",
    "proxy/network_list_resource.cc",
    "proxy/network_list_resource.h",
    "proxy/network_monitor_resource.cc",
    "proxy/network_monitor_resource.h",
    "proxy/network_proxy_resource.cc",
    "proxy/network_proxy_resource.h",
    "proxy/output_protection_resource.cc",
    "proxy/output_protection_resource.h",
    "proxy/plugin_array_buffer_var.cc",
    "proxy/plugin_array_buffer_var.h",
    "proxy/plugin_dispatcher.cc",
    "proxy/plugin_dispatcher.h",
    "proxy/plugin_globals.cc",
    "proxy/plugin_globals.h",
    "proxy/plugin_message_filter.cc",
    "proxy/plugin_message_filter.h",
    "proxy/plugin_resource.cc",
    "proxy/plugin_resource.h",
    "proxy/plugin_resource_tracker.cc",
    "proxy/plugin_resource_tracker.h",
    "proxy/plugin_resource_var.cc",
    "proxy/plugin_resource_var.h",
    "proxy/plugin_var_serialization_rules.cc",
    "proxy/plugin_var_serialization_rules.h",
    "proxy/plugin_var_tracker.cc",
    "proxy/plugin_var_tracker.h",
    "proxy/ppapi_command_buffer_proxy.cc",
    "proxy/ppapi_command_buffer_proxy.h",
    "proxy/ppapi_messages.h",
    "proxy/ppapi_message_utils.h",
    "proxy/ppb_audio_proxy.cc",
    "proxy/ppb_audio_proxy.h",
    "proxy/ppb_core_proxy.cc",
    "proxy/ppb_core_proxy.h",
    "proxy/ppb_graphics_3d_proxy.cc",
    "proxy/ppb_graphics_3d_proxy.h",
    "proxy/ppb_image_data_proxy.cc",
    "proxy/ppb_image_data_proxy.h",
    "proxy/ppb_instance_proxy.cc",
    "proxy/ppb_instance_proxy.h",
    "proxy/ppb_message_loop_proxy.cc",
    "proxy/ppb_message_loop_proxy.h",
    "proxy/ppb_testing_proxy.cc",
    "proxy/ppb_testing_proxy.h",
    "proxy/ppb_var_deprecated_proxy.cc",
    "proxy/ppb_var_deprecated_proxy.h",
    "proxy/ppb_x509_certificate_private_proxy.cc",
    "proxy/ppb_x509_certificate_private_proxy.h",
    "proxy/ppp_class_proxy.cc",
    "proxy/ppp_class_proxy.h",
    "proxy/ppp_find_proxy.cc",
    "proxy/ppp_find_proxy.h",
    "proxy/ppp_graphics_3d_proxy.cc",
    "proxy/ppp_graphics_3d_proxy.h",
    "proxy/ppp_input_event_proxy.cc",
    "proxy/ppp_input_event_proxy.h",
    "proxy/ppp_instance_proxy.cc",
    "proxy/ppp_instance_proxy.h",
    "proxy/ppp_messaging_proxy.cc",
    "proxy/ppp_messaging_proxy.h",
    "proxy/ppp_mouse_lock_proxy.cc",
    "proxy/ppp_mouse_lock_proxy.h",
    "proxy/ppp_pdf_proxy.cc",
    "proxy/ppp_pdf_proxy.h",
    "proxy/ppp_printing_proxy.cc",
    "proxy/ppp_printing_proxy.h",
    "proxy/ppp_text_input_proxy.cc",
    "proxy/ppp_text_input_proxy.h",
    "proxy/printing_resource.cc",
    "proxy/printing_resource.h",
    "proxy/proxy_array_output.cc",
    "proxy/proxy_array_output.h",
    "proxy/proxy_channel.cc",
    "proxy/proxy_channel.h",
    "proxy/proxy_completion_callback_factory.h",
    "proxy/proxy_module.cc",
    "proxy/proxy_module.h",
    "proxy/proxy_object_var.cc",
    "proxy/proxy_object_var.h",
    "proxy/resource_creation_proxy.cc",
    "proxy/resource_creation_proxy.h",
    "proxy/resource_reply_thread_registrar.cc",
    "proxy/resource_reply_thread_registrar.h",
    "proxy/tcp_server_socket_private_resource.cc",
    "proxy/tcp_server_socket_private_resource.h",
    "proxy/tcp_socket_private_resource.cc",
    "proxy/tcp_socket_private_resource.h",
    "proxy/tcp_socket_resource.cc",
    "proxy/tcp_socket_resource.h",
    "proxy/tcp_socket_resource_base.cc",
    "proxy/tcp_socket_resource_base.h",
    "proxy/truetype_font_resource.cc",
    "proxy/truetype_font_resource.h",
    "proxy/truetype_font_singleton_resource.cc",
    "proxy/truetype_font_singleton_resource.h",
    "proxy/udp_socket_private_resource.cc",
    "proxy/udp_socket_private_resource.h",
    "proxy/udp_socket_resource.cc",
    "proxy/udp_socket_resource.h",
    "proxy/udp_socket_resource_base.cc",
    "proxy/udp_socket_resource_base.h",
    "proxy/uma_private_resource.cc",
    "proxy/uma_private_resource.h",
    "proxy/url_loader_resource.cc",
    "proxy/url_loader_resource.h",
    "proxy/url_request_info_resource.cc",
    "proxy/url_request_info_resource.h",
    "proxy/url_response_info_resource.cc",
    "proxy/url_response_info_resource.h",
    "proxy/var_serialization_rules.h",
    "proxy/video_destination_resource.cc",
    "proxy/video_destination_resource.h",
    "proxy/video_frame_resource.cc",
    "proxy/video_frame_resource.h",
    "proxy/video_source_resource.cc",
    "proxy/video_source_resource.h",
    "proxy/websocket_resource.cc",
    "proxy/websocket_resource.h",
  ]

  if (is_nacl) {
    sources += [
      "nacl_irt/irt_ppapi.cc",
      "nacl_irt/irt_ppapi.h",
      "nacl_irt/irt_start.cc",
      "nacl_irt/manifest_service.cc",
      "nacl_irt/manifest_service.h",
      "nacl_irt/plugin_main.cc",
      "nacl_irt/plugin_main.h",
      "nacl_irt/plugin_startup.cc",
      "nacl_irt/plugin_startup.h",
      "nacl_irt/ppapi_dispatcher.cc",
      "nacl_irt/ppapi_dispatcher.h",
    ]
  } else {
    sources += [
      "proxy/audio_input_resource.cc",
      "proxy/audio_input_resource.h",
      "proxy/broker_dispatcher.cc",
      "proxy/broker_dispatcher.h",
      "proxy/browser_font_singleton_resource.cc",
      "proxy/browser_font_singleton_resource.h",
      "proxy/device_enumeration_resource_helper.cc",
      "proxy/device_enumeration_resource_helper.h",
      "proxy/flash_clipboard_resource.cc",
      "proxy/flash_clipboard_resource.h",
      "proxy/flash_drm_resource.cc",
      "proxy/flash_drm_resource.h",
      "proxy/flash_file_resource.cc",
      "proxy/flash_file_resource.h",
      "proxy/flash_font_file_resource.cc",
      "proxy/flash_font_file_resource.h",
      "proxy/flash_fullscreen_resource.cc",
      "proxy/flash_fullscreen_resource.h",
      "proxy/flash_menu_resource.cc",
      "proxy/flash_menu_resource.h",
      "proxy/flash_resource.cc",
      "proxy/flash_resource.h",
      "proxy/host_dispatcher.cc",
      "proxy/host_dispatcher.h",
      "proxy/host_var_serialization_rules.cc",
      "proxy/host_var_serialization_rules.h",
      "proxy/pdf_resource.cc",
      "proxy/pdf_resource.h",
      "proxy/platform_verification_private_resource.cc",
      "proxy/platform_verification_private_resource.h",
      "proxy/ppb_broker_proxy.cc",
      "proxy/ppb_broker_proxy.h",
      "proxy/ppb_buffer_proxy.cc",
      "proxy/ppb_buffer_proxy.h",
      "proxy/ppb_flash_message_loop_proxy.cc",
      "proxy/ppb_flash_message_loop_proxy.h",
      "proxy/ppb_video_decoder_proxy.cc",
      "proxy/ppb_video_decoder_proxy.h",
      "proxy/ppp_content_decryptor_private_proxy.cc",
      "proxy/ppp_content_decryptor_private_proxy.h",
      "proxy/ppp_instance_private_proxy.cc",
      "proxy/ppp_instance_private_proxy.h",
      "proxy/ppp_video_decoder_proxy.cc",
      "proxy/ppp_video_decoder_proxy.h",
      "proxy/talk_resource.cc",
      "proxy/talk_resource.h",
      "proxy/video_capture_resource.cc",
      "proxy/video_capture_resource.h",
    ]
  }

  defines = [ "PPAPI_PROXY_IMPLEMENTATION" ]

  deps = [
    ":ppapi_c",
    ":ppapi_shared",
    ":ppapi_ipc",
    "//base",
    "//base/third_party/dynamic_annotations",
    "//gpu/command_buffer/client:gles2_implementation",
    "//gpu/ipc",
    #"//media:shared_memory_support",  # TODO(GYP)
    "//ipc",
    "//skia",
    "//third_party/icu",
    "//ui/surface",
    #blink_target,  TODO(GYP)
  ]

  if (is_win) {
    cflags = [ "/wd4267" ]  # size_t to int truncation.
  }
}

# TODO(GYP) other targets from ppapi_tests.gyp
