Work on Windows GN component build.
[chromium-blink-merge.git] / ppapi / proxy / BUILD.gn
blob31a0262705a86aead26f961a9ad22b5d497a0e2a
1 # Copyright 2015 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 config("proxy_implementation") {
6   defines = [ "PPAPI_PROXY_IMPLEMENTATION" ]
9 component("proxy") {
10   output_name = "ppapi_proxy"
12   sources = [
13     # Take some standalone files from the C++ wrapper allowing us to more
14     # easily make async callbacks in the proxy. We can't depend on the
15     # full C++ wrappers at this layer since the C++ wrappers expect
16     # symbols defining the globals for "being a plugin" which we are not.
17     # These callback files are standalone.
18     "../cpp/completion_callback.h",
19     "../utility/completion_callback_factory.h",
20     "audio_buffer_resource.cc",
21     "audio_buffer_resource.h",
22     "broker_resource.cc",
23     "broker_resource.h",
24     "camera_capabilities_resource.cc",
25     "camera_capabilities_resource.h",
26     "camera_device_resource.cc",
27     "camera_device_resource.h",
28     "compositor_layer_resource.cc",
29     "compositor_layer_resource.h",
30     "compositor_resource.cc",
31     "compositor_resource.h",
32     "connection.h",
33     "dispatcher.cc",
34     "dispatcher.h",
35     "enter_proxy.h",
36     "error_conversion.cc",
37     "error_conversion.h",
38     "file_chooser_resource.cc",
39     "file_chooser_resource.h",
40     "file_io_resource.cc",
41     "file_io_resource.h",
42     "file_ref_resource.cc",
43     "file_ref_resource.h",
44     "file_system_resource.cc",
45     "file_system_resource.h",
46     "gamepad_resource.cc",
47     "gamepad_resource.h",
48     "graphics_2d_resource.cc",
49     "graphics_2d_resource.h",
50     "host_resolver_private_resource.cc",
51     "host_resolver_private_resource.h",
52     "host_resolver_resource.cc",
53     "host_resolver_resource.h",
54     "host_resolver_resource_base.cc",
55     "host_resolver_resource_base.h",
56     "interface_list.cc",
57     "interface_list.h",
58     "interface_proxy.cc",
59     "interface_proxy.h",
60     "isolated_file_system_private_resource.cc",
61     "isolated_file_system_private_resource.h",
62     "locking_resource_releaser.h",
63     "media_stream_audio_track_resource.cc",
64     "media_stream_audio_track_resource.h",
65     "media_stream_track_resource_base.cc",
66     "media_stream_track_resource_base.h",
67     "media_stream_video_track_resource.cc",
68     "media_stream_video_track_resource.h",
69     "message_handler.cc",
70     "message_handler.h",
71     "net_address_resource.cc",
72     "net_address_resource.h",
73     "network_list_resource.cc",
74     "network_list_resource.h",
75     "network_monitor_resource.cc",
76     "network_monitor_resource.h",
77     "network_proxy_resource.cc",
78     "network_proxy_resource.h",
79     "output_protection_resource.cc",
80     "output_protection_resource.h",
81     "plugin_array_buffer_var.cc",
82     "plugin_array_buffer_var.h",
83     "plugin_dispatcher.cc",
84     "plugin_dispatcher.h",
85     "plugin_globals.cc",
86     "plugin_globals.h",
87     "plugin_message_filter.cc",
88     "plugin_message_filter.h",
89     "plugin_resource.cc",
90     "plugin_resource.h",
91     "plugin_resource_tracker.cc",
92     "plugin_resource_tracker.h",
93     "plugin_resource_var.cc",
94     "plugin_resource_var.h",
95     "plugin_var_serialization_rules.cc",
96     "plugin_var_serialization_rules.h",
97     "plugin_var_tracker.cc",
98     "plugin_var_tracker.h",
99     "ppapi_command_buffer_proxy.cc",
100     "ppapi_command_buffer_proxy.h",
101     "ppapi_message_utils.h",
102     "ppapi_messages.h",
103     "ppb_audio_proxy.cc",
104     "ppb_audio_proxy.h",
105     "ppb_core_proxy.cc",
106     "ppb_core_proxy.h",
107     "ppb_graphics_3d_proxy.cc",
108     "ppb_graphics_3d_proxy.h",
109     "ppb_image_data_proxy.cc",
110     "ppb_image_data_proxy.h",
111     "ppb_instance_proxy.cc",
112     "ppb_instance_proxy.h",
113     "ppb_message_loop_proxy.cc",
114     "ppb_message_loop_proxy.h",
115     "ppb_testing_proxy.cc",
116     "ppb_testing_proxy.h",
117     "ppb_x509_certificate_private_proxy.cc",
118     "ppb_x509_certificate_private_proxy.h",
119     "ppp_class_proxy.cc",
120     "ppp_class_proxy.h",
121     "ppp_find_proxy.cc",
122     "ppp_find_proxy.h",
123     "ppp_graphics_3d_proxy.cc",
124     "ppp_graphics_3d_proxy.h",
125     "ppp_input_event_proxy.cc",
126     "ppp_input_event_proxy.h",
127     "ppp_instance_proxy.cc",
128     "ppp_instance_proxy.h",
129     "ppp_messaging_proxy.cc",
130     "ppp_messaging_proxy.h",
131     "ppp_mouse_lock_proxy.cc",
132     "ppp_mouse_lock_proxy.h",
133     "ppp_pdf_proxy.cc",
134     "ppp_pdf_proxy.h",
135     "ppp_printing_proxy.cc",
136     "ppp_printing_proxy.h",
137     "ppp_text_input_proxy.cc",
138     "ppp_text_input_proxy.h",
139     "printing_resource.cc",
140     "printing_resource.h",
141     "proxy_array_output.cc",
142     "proxy_array_output.h",
143     "proxy_channel.cc",
144     "proxy_channel.h",
145     "proxy_completion_callback_factory.h",
146     "proxy_module.cc",
147     "proxy_module.h",
148     "proxy_object_var.cc",
149     "proxy_object_var.h",
150     "resource_creation_proxy.cc",
151     "resource_creation_proxy.h",
152     "resource_reply_thread_registrar.cc",
153     "resource_reply_thread_registrar.h",
154     "tcp_server_socket_private_resource.cc",
155     "tcp_server_socket_private_resource.h",
156     "tcp_socket_private_resource.cc",
157     "tcp_socket_private_resource.h",
158     "tcp_socket_resource.cc",
159     "tcp_socket_resource.h",
160     "tcp_socket_resource_base.cc",
161     "tcp_socket_resource_base.h",
162     "truetype_font_resource.cc",
163     "truetype_font_resource.h",
164     "truetype_font_singleton_resource.cc",
165     "truetype_font_singleton_resource.h",
166     "udp_socket_filter.cc",
167     "udp_socket_filter.h",
168     "udp_socket_private_resource.cc",
169     "udp_socket_private_resource.h",
170     "udp_socket_resource.cc",
171     "udp_socket_resource.h",
172     "udp_socket_resource_base.cc",
173     "udp_socket_resource_base.h",
174     "uma_private_resource.cc",
175     "uma_private_resource.h",
176     "url_loader_resource.cc",
177     "url_loader_resource.h",
178     "url_request_info_resource.cc",
179     "url_request_info_resource.h",
180     "url_response_info_resource.cc",
181     "url_response_info_resource.h",
182     "var_serialization_rules.h",
183     "video_decoder_resource.cc",
184     "video_decoder_resource.h",
185     "video_destination_resource.cc",
186     "video_destination_resource.h",
187     "video_encoder_resource.cc",
188     "video_encoder_resource.h",
189     "video_frame_resource.cc",
190     "video_frame_resource.h",
191     "video_source_resource.cc",
192     "video_source_resource.h",
193     "websocket_resource.cc",
194     "websocket_resource.h",
195   ]
197   if (is_nacl) {
198     sources += [
199       "../nacl_irt/irt_ppapi.cc",
200       "../nacl_irt/irt_ppapi.h",
201       "../nacl_irt/irt_start.cc",
202       "../nacl_irt/manifest_service.cc",
203       "../nacl_irt/manifest_service.h",
204       "../nacl_irt/plugin_main.cc",
205       "../nacl_irt/plugin_main.h",
206       "../nacl_irt/plugin_startup.cc",
207       "../nacl_irt/plugin_startup.h",
208       "../nacl_irt/ppapi_dispatcher.cc",
209       "../nacl_irt/ppapi_dispatcher.h",
210     ]
211   } else {
212     sources += [
213       "audio_input_resource.cc",
214       "audio_input_resource.h",
215       "broker_dispatcher.cc",
216       "broker_dispatcher.h",
217       "browser_font_singleton_resource.cc",
218       "browser_font_singleton_resource.h",
219       "device_enumeration_resource_helper.cc",
220       "device_enumeration_resource_helper.h",
221       "flash_clipboard_resource.cc",
222       "flash_clipboard_resource.h",
223       "flash_drm_resource.cc",
224       "flash_drm_resource.h",
225       "flash_file_resource.cc",
226       "flash_file_resource.h",
227       "flash_font_file_resource.cc",
228       "flash_font_file_resource.h",
229       "flash_fullscreen_resource.cc",
230       "flash_fullscreen_resource.h",
231       "flash_menu_resource.cc",
232       "flash_menu_resource.h",
233       "flash_resource.cc",
234       "flash_resource.h",
235       "host_dispatcher.cc",
236       "host_dispatcher.h",
237       "host_var_serialization_rules.cc",
238       "host_var_serialization_rules.h",
239       "pdf_resource.cc",
240       "pdf_resource.h",
241       "platform_verification_private_resource.cc",
242       "platform_verification_private_resource.h",
243       "ppb_broker_proxy.cc",
244       "ppb_broker_proxy.h",
245       "ppb_buffer_proxy.cc",
246       "ppb_buffer_proxy.h",
247       "ppb_flash_message_loop_proxy.cc",
248       "ppb_flash_message_loop_proxy.h",
249       "ppb_var_deprecated_proxy.cc",
250       "ppb_var_deprecated_proxy.h",
251       "ppb_video_decoder_proxy.cc",
252       "ppb_video_decoder_proxy.h",
253       "ppp_content_decryptor_private_proxy.cc",
254       "ppp_content_decryptor_private_proxy.h",
255       "ppp_instance_private_proxy.cc",
256       "ppp_instance_private_proxy.h",
257       "ppp_video_decoder_proxy.cc",
258       "ppp_video_decoder_proxy.h",
259       "talk_resource.cc",
260       "talk_resource.h",
261       "video_capture_resource.cc",
262       "video_capture_resource.h",
263     ]
264   }
266   configs += [ ":proxy_implementation" ]
268   deps = [
269     "//base",
270     "//gpu/command_buffer/client:gles2_implementation",
271     "//gpu/ipc",
272     "//ipc",
273     "//media:shared_memory_support",
274     "//ppapi/c",
275     "//ppapi/proxy:ipc_sources",
276     "//ppapi/shared_impl",
277     "//third_party/icu",
278   ]
280   if (is_nacl) {
281     deps += [
282       "//ui/events:latency_info",
283       "//mojo/nacl:mojo",
284     ]
285   } else {
286     deps += [
287       "//base/third_party/dynamic_annotations",
288       "//gin",
289       "//skia",
290       "//ui/events:events_base",
291       "//ui/surface",
292     ]
293   }
296 group("ipc") {
297   if (is_component_build) {
298     public_deps = [
299       "//ppapi/proxy",
300     ]
301   } else {
302     public_deps = [
303       ":ipc_sources",
304     ]
305   }
308 source_set("ipc_sources") {
309   sources = [
310     "nacl_message_scanner.cc",
311     "nacl_message_scanner.h",
312     "ppapi_messages.cc",
313     "ppapi_messages.h",
314     "ppapi_param_traits.cc",
315     "ppapi_param_traits.h",
316     "raw_var_data.cc",
317     "raw_var_data.h",
318     "resource_message_params.cc",
319     "resource_message_params.h",
320     "serialized_flash_menu.cc",
321     "serialized_flash_menu.h",
322     "serialized_handle.cc",
323     "serialized_handle.h",
324     "serialized_structs.cc",
325     "serialized_structs.h",
326     "serialized_var.cc",
327     "serialized_var.h",
328     "var_serialization_rules.h",
329   ]
330   if (is_nacl) {
331     sources -= [ "serialized_flash_menu.cc" ]
332   }
334   configs += [ ":proxy_implementation" ]
336   deps = [
337     "//base",
338     "//gpu/ipc",
339     "//ipc",
340     "//ppapi/c",
341     "//ppapi/shared_impl",
342   ]
343   if (!is_nacl) {
344     deps += [
345       "//skia",
346       "//ui/events/ipc",
347     ]
348   }
351 source_set("test_support") {
352   testonly = true
354   sources = [
355     "ppapi_proxy_test.cc",
356     "ppapi_proxy_test.h",
357     "resource_message_test_sink.cc",
358     "resource_message_test_sink.h",
359   ]
361   deps = [
362     "//base/test:test_support",
363     "//ipc",
364     "//ipc:test_support",
365     "//ppapi/proxy",
366     "//ppapi/shared_impl",
367     "//testing/gmock",
368     "//testing/gtest",
369   ]