1# Copyright (c) 2011 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{
6  'variables': {
7    'conditions': [
8      ['inside_chromium_build==0', {
9        'webkit_src_dir': '../../../../..',
10      },{
11        'webkit_src_dir': '../../third_party/WebKit',
12      }],
13    ],
14  },
15  'targets': [
16    {
17      'target_name': 'webkit_resources',
18      'type': 'none',
19      'msvs_guid': '0B469837-3D46-484A-AFB3-C5A6C68730B9',
20      'variables': {
21        'grit_out_dir': '<(SHARED_INTERMEDIATE_DIR)/webkit',
22      },
23      'actions': [
24        {
25          'action_name': 'webkit_resources',
26          'variables': {
27            'grit_grd_file': 'webkit_resources.grd',
28          },
29          'includes': [ '../../build/grit_action.gypi' ],
30        },
31        {
32          'action_name': 'webkit_chromium_resources',
33          'variables': {
34            'grit_grd_file': '<(webkit_src_dir)/Source/WebKit/chromium/WebKit.grd',
35          },
36          'includes': [ '../../build/grit_action.gypi' ],
37        },
38      ],
39      'includes': [ '../../build/grit_target.gypi' ],
40    },
41    {
42      'target_name': 'webkit_strings',
43      'type': 'none',
44      'msvs_guid': '60B43839-95E6-4526-A661-209F16335E0E',
45      'variables': {
46        'grit_out_dir': '<(SHARED_INTERMEDIATE_DIR)/webkit',
47      },
48      'actions': [
49        {
50          'action_name': 'webkit_strings',
51          'variables': {
52            'grit_grd_file': 'webkit_strings.grd',
53          },
54          'includes': [ '../../build/grit_action.gypi' ],
55        },
56      ],
57      'includes': [ '../../build/grit_target.gypi' ],
58    },
59    {
60      'target_name': 'webkit_user_agent',
61      'type': '<(library)',
62      'msvs_guid': 'DB162DE1-7D56-4C4A-8A9F-80D396CD7AA8',
63      'dependencies': [
64        '<(DEPTH)/app/app.gyp:app_base',
65        '<(DEPTH)/base/base.gyp:base_i18n',
66      ],
67      'actions': [
68        {
69          'action_name': 'webkit_version',
70          'inputs': [
71            '<(script)',
72            '<(webkit_src_dir)<(version_file)',
73            '../../build/util/lastchange.py',  # Used by the script.
74          ],
75          'outputs': [
76            '<(INTERMEDIATE_DIR)/webkit_version.h',
77          ],
78          'action': ['python', '<(script)', '<(webkit_src_dir)',
79                     '<(version_file)', '<(INTERMEDIATE_DIR)'],
80          'variables': {
81            'script': '../build/webkit_version.py',
82            # version_file is a relative path from |webkit_src_dir| to
83            # the version file.  But gyp will eat the variable unless
84            # it looks like an absolute path, so write it like one and
85            # then use it carefully above.
86            'version_file': '/Source/WebCore/Configurations/Version.xcconfig',
87          },
88        },
89      ],
90      'include_dirs': [
91        '<(INTERMEDIATE_DIR)',
92      ],
93      'sources': [
94        'user_agent.cc',
95        'user_agent.h',
96      ],
97      # Dependents may rely on files generated by this target or one of its
98      # own hard dependencies.
99      'hard_dependency': 1,
100      'conditions': [
101      ],
102    },
103    {
104      'target_name': 'glue',
105      'type': '<(library)',
106      'msvs_guid': 'C66B126D-0ECE-4CA2-B6DC-FA780AFBBF09',
107      'dependencies': [
108        '<(DEPTH)/app/app.gyp:app_base',
109        '<(DEPTH)/base/base.gyp:base_i18n',
110        '<(DEPTH)/gpu/gpu.gyp:gpu_common',
111        '<(DEPTH)/gpu/gpu.gyp:gles2_implementation',
112        '<(DEPTH)/net/net.gyp:net',
113        '<(DEPTH)/ppapi/ppapi.gyp:ppapi_shared_impl',
114        '<(DEPTH)/printing/printing.gyp:printing',
115        '<(DEPTH)/skia/skia.gyp:skia',
116        '<(DEPTH)/third_party/icu/icu.gyp:icui18n',
117        '<(DEPTH)/third_party/icu/icu.gyp:icuuc',
118        '<(DEPTH)/third_party/npapi/npapi.gyp:npapi',
119        '<(DEPTH)/ppapi/ppapi.gyp:ppapi_c',
120        'webkit_resources',
121        'webkit_strings',
122        'webkit_user_agent',
123      ],
124      'actions': [
125      ],
126      'include_dirs': [
127        '<(INTERMEDIATE_DIR)',
128        '<(SHARED_INTERMEDIATE_DIR)/webkit',
129      ],
130      'sources': [
131        # This list contains all .h, .cc, and .mm files in glue except for
132        # those in the test subdirectory and those with unittest in in their
133        # names.
134        '../plugins/npapi/carbon_plugin_window_tracker_mac.cc',
135        '../plugins/npapi/carbon_plugin_window_tracker_mac.h',
136        '../plugins/npapi/coregraphics_private_symbols_mac.h',
137        '../plugins/npapi/default_plugin_shared.h',
138        '../plugins/npapi/gtk_plugin_container.cc',
139        '../plugins/npapi/gtk_plugin_container.h',
140        '../plugins/npapi/gtk_plugin_container_manager.cc',
141        '../plugins/npapi/gtk_plugin_container_manager.h',
142        '../plugins/npapi/npapi_extension_thunk.cc',
143        '../plugins/npapi/npapi_extension_thunk.h',
144        '../plugins/npapi/plugin_constants_win.cc',
145        '../plugins/npapi/plugin_constants_win.h',
146        '../plugins/npapi/plugin_group.cc',
147        '../plugins/npapi/plugin_group.h',
148        '../plugins/npapi/plugin_host.cc',
149        '../plugins/npapi/plugin_host.h',
150        '../plugins/npapi/plugin_instance.cc',
151        '../plugins/npapi/plugin_instance.h',
152        '../plugins/npapi/plugin_instance_mac.mm',
153        '../plugins/npapi/plugin_lib.cc',
154        '../plugins/npapi/plugin_lib.h',
155        '../plugins/npapi/plugin_lib_mac.mm',
156        '../plugins/npapi/plugin_lib_posix.cc',
157        '../plugins/npapi/plugin_lib_win.cc',
158        '../plugins/npapi/plugin_list.cc',
159        '../plugins/npapi/plugin_list.h',
160        '../plugins/npapi/plugin_list_mac.mm',
161        '../plugins/npapi/plugin_list_posix.cc',
162        '../plugins/npapi/plugin_list_win.cc',
163        '../plugins/npapi/plugin_stream.cc',
164        '../plugins/npapi/plugin_stream.h',
165        '../plugins/npapi/plugin_stream_posix.cc',
166        '../plugins/npapi/plugin_stream_url.cc',
167        '../plugins/npapi/plugin_stream_url.h',
168        '../plugins/npapi/plugin_stream_win.cc',
169        '../plugins/npapi/plugin_string_stream.cc',
170        '../plugins/npapi/plugin_string_stream.h',
171        '../plugins/npapi/plugin_web_event_converter_mac.h',
172        '../plugins/npapi/plugin_web_event_converter_mac.mm',
173        '../plugins/npapi/quickdraw_drawing_manager_mac.cc',
174        '../plugins/npapi/quickdraw_drawing_manager_mac.h',
175        '../plugins/npapi/webplugin.cc',
176        '../plugins/npapi/webplugin.h',
177        '../plugins/npapi/webplugin_2d_device_delegate.cc',
178        '../plugins/npapi/webplugin_2d_device_delegate.h',
179        '../plugins/npapi/webplugin_3d_device_delegate.cc',
180        '../plugins/npapi/webplugin_3d_device_delegate.h',
181        '../plugins/npapi/webplugin_accelerated_surface_mac.h',
182        '../plugins/npapi/webplugin_audio_device_delegate.cc',
183        '../plugins/npapi/webplugin_audio_device_delegate.h',
184        '../plugins/npapi/webplugin_delegate.cc',
185        '../plugins/npapi/webplugin_delegate.h',
186        '../plugins/npapi/webplugin_delegate_impl.cc',
187        '../plugins/npapi/webplugin_delegate_impl.h',
188        '../plugins/npapi/webplugin_delegate_impl_gtk.cc',
189        '../plugins/npapi/webplugin_delegate_impl_mac.mm',
190        '../plugins/npapi/webplugin_delegate_impl_win.cc',
191        '../plugins/npapi/webplugin_file_delegate.cc',
192        '../plugins/npapi/webplugin_file_delegate.h',
193        '../plugins/npapi/webplugin_impl.cc',
194        '../plugins/npapi/webplugin_impl.h',
195        '../plugins/npapi/webplugin_print_delegate.cc',
196        '../plugins/npapi/webplugin_print_delegate.h',
197        '../plugins/npapi/webplugininfo.cc',
198        '../plugins/npapi/webplugininfo.h',
199        '../plugins/npapi/webview_plugin.cc',
200        '../plugins/npapi/webview_plugin.h',
201        '../plugins/plugin_switches.cc',
202        '../plugins/plugin_switches.h',
203        '../plugins/ppapi/callbacks.cc',
204        '../plugins/ppapi/callbacks.h',
205        '../plugins/ppapi/common.h',
206        '../plugins/ppapi/dir_contents.h',
207        '../plugins/ppapi/error_util.cc',
208        '../plugins/ppapi/error_util.h',
209        '../plugins/ppapi/event_conversion.cc',
210        '../plugins/ppapi/event_conversion.h',
211        '../plugins/ppapi/file_callbacks.cc',
212        '../plugins/ppapi/file_callbacks.h',
213        '../plugins/ppapi/file_path.cc',
214        '../plugins/ppapi/file_path.h',
215        '../plugins/ppapi/fullscreen_container.h',
216        '../plugins/ppapi/message_channel.cc',
217        '../plugins/ppapi/message_channel.h',
218        '../plugins/ppapi/npapi_glue.cc',
219        '../plugins/ppapi/npapi_glue.h',
220        '../plugins/ppapi/plugin_delegate.h',
221        '../plugins/ppapi/plugin_module.cc',
222        '../plugins/ppapi/plugin_module.h',
223        '../plugins/ppapi/plugin_object.cc',
224        '../plugins/ppapi/plugin_object.h',
225        '../plugins/ppapi/ppapi_plugin_instance.cc',
226        '../plugins/ppapi/ppapi_plugin_instance.h',
227        '../plugins/ppapi/ppapi_webplugin_impl.cc',
228        '../plugins/ppapi/ppapi_webplugin_impl.h',
229        '../plugins/ppapi/ppb_audio_impl.cc',
230        '../plugins/ppapi/ppb_audio_impl.h',
231        '../plugins/ppapi/ppb_broker_impl.cc',
232        '../plugins/ppapi/ppb_broker_impl.h',
233        '../plugins/ppapi/ppb_buffer_impl.cc',
234        '../plugins/ppapi/ppb_buffer_impl.h',
235        '../plugins/ppapi/ppb_char_set_impl.cc',
236        '../plugins/ppapi/ppb_char_set_impl.h',
237        '../plugins/ppapi/ppb_console_impl.cc',
238        '../plugins/ppapi/ppb_console_impl.h',
239        '../plugins/ppapi/ppb_context_3d_impl.cc',
240        '../plugins/ppapi/ppb_context_3d_impl.h',
241        '../plugins/ppapi/ppb_crypto_impl.cc',
242        '../plugins/ppapi/ppb_crypto_impl.h',
243        '../plugins/ppapi/ppb_cursor_control_impl.cc',
244        '../plugins/ppapi/ppb_cursor_control_impl.h',
245        '../plugins/ppapi/ppb_directory_reader_impl.cc',
246        '../plugins/ppapi/ppb_directory_reader_impl.h',
247        '../plugins/ppapi/ppb_file_chooser_impl.cc',
248        '../plugins/ppapi/ppb_file_chooser_impl.h',
249        '../plugins/ppapi/ppb_file_io_impl.cc',
250        '../plugins/ppapi/ppb_file_io_impl.h',
251        '../plugins/ppapi/ppb_file_ref_impl.cc',
252        '../plugins/ppapi/ppb_file_ref_impl.h',
253        '../plugins/ppapi/ppb_file_system_impl.cc',
254        '../plugins/ppapi/ppb_file_system_impl.h',
255        '../plugins/ppapi/ppb_flash_clipboard_impl.cc',
256        '../plugins/ppapi/ppb_flash_clipboard_impl.h',
257        '../plugins/ppapi/ppb_flash_file_impl.cc',
258        '../plugins/ppapi/ppb_flash_file_impl.h',
259        '../plugins/ppapi/ppb_flash_impl.cc',
260        '../plugins/ppapi/ppb_flash_impl.h',
261        '../plugins/ppapi/ppb_flash_impl_linux.cc',
262        '../plugins/ppapi/ppb_flash_menu_impl.cc',
263        '../plugins/ppapi/ppb_flash_menu_impl.h',
264        '../plugins/ppapi/ppb_flash_net_connector_impl.cc',
265        '../plugins/ppapi/ppb_flash_net_connector_impl.h',
266        '../plugins/ppapi/ppb_font_impl.cc',
267        '../plugins/ppapi/ppb_font_impl.h',
268        '../plugins/ppapi/ppb_gles_chromium_texture_mapping_impl.cc',
269        '../plugins/ppapi/ppb_gles_chromium_texture_mapping_impl.h',
270        '../plugins/ppapi/ppb_graphics_2d_impl.cc',
271        '../plugins/ppapi/ppb_graphics_2d_impl.h',
272        '../plugins/ppapi/ppb_graphics_3d_impl.cc',
273        '../plugins/ppapi/ppb_graphics_3d_impl.h',
274        '../plugins/ppapi/ppb_image_data_impl.cc',
275        '../plugins/ppapi/ppb_image_data_impl.h',
276        '../plugins/ppapi/ppb_nacl_private_impl.cc',
277        '../plugins/ppapi/ppb_nacl_private_impl.h',
278        '../plugins/ppapi/ppb_opengles_impl.cc',
279        '../plugins/ppapi/ppb_opengles_impl.h',
280        '../plugins/ppapi/ppb_pdf_impl.cc',
281        '../plugins/ppapi/ppb_pdf_impl.h',
282        '../plugins/ppapi/ppb_proxy_impl.cc',
283        '../plugins/ppapi/ppb_proxy_impl.h',
284        '../plugins/ppapi/ppb_scrollbar_impl.cc',
285        '../plugins/ppapi/ppb_scrollbar_impl.h',
286        '../plugins/ppapi/ppb_surface_3d_impl.cc',
287        '../plugins/ppapi/ppb_surface_3d_impl.h',
288        '../plugins/ppapi/ppb_transport_impl.cc',
289        '../plugins/ppapi/ppb_transport_impl.h',
290        '../plugins/ppapi/ppb_url_loader_impl.cc',
291        '../plugins/ppapi/ppb_url_loader_impl.h',
292        '../plugins/ppapi/ppb_url_request_info_impl.cc',
293        '../plugins/ppapi/ppb_url_request_info_impl.h',
294        '../plugins/ppapi/ppb_url_response_info_impl.cc',
295        '../plugins/ppapi/ppb_url_response_info_impl.h',
296        '../plugins/ppapi/ppb_url_util_impl.cc',
297        '../plugins/ppapi/ppb_url_util_impl.h',
298        '../plugins/ppapi/ppb_video_decoder_impl.cc',
299        '../plugins/ppapi/ppb_video_decoder_impl.h',
300        '../plugins/ppapi/ppb_widget_impl.cc',
301        '../plugins/ppapi/ppb_widget_impl.h',
302        '../plugins/ppapi/resource.cc',
303        '../plugins/ppapi/resource.h',
304        '../plugins/ppapi/resource_tracker.cc',
305        '../plugins/ppapi/resource_tracker.h',
306        '../plugins/ppapi/string.cc',
307        '../plugins/ppapi/string.h',
308        '../plugins/ppapi/usb_code_for_event.cc',
309        '../plugins/ppapi/usb_code_for_event.h',
310        '../plugins/ppapi/var.cc',
311        '../plugins/ppapi/var.h',
312        '../plugins/sad_plugin.cc',
313        '../plugins/sad_plugin.h',
314        'media/audio_decoder.cc',
315        'media/audio_decoder.h',
316        'media/buffered_data_source.cc',
317        'media/buffered_data_source.h',
318        'media/buffered_resource_loader.cc',
319        'media/buffered_resource_loader.h',
320        'media/simple_data_source.cc',
321        'media/simple_data_source.h',
322        'media/video_renderer_impl.cc',
323        'media/video_renderer_impl.h',
324        'media/web_data_source.cc',
325        'media/web_data_source.h',
326        'media/web_data_source_factory.cc',
327        'media/web_data_source_factory.h',
328        'media/web_video_renderer.h',
329        'alt_error_page_resource_fetcher.cc',
330        'alt_error_page_resource_fetcher.h',
331        'context_menu.cc',
332        'context_menu.h',
333        'cpp_binding_example.cc',
334        'cpp_binding_example.h',
335        'cpp_bound_class.cc',
336        'cpp_bound_class.h',
337        'cpp_variant.cc',
338        'cpp_variant.h',
339        'dom_operations.cc',
340        'dom_operations.h',
341        'form_data.cc',
342        'form_data.h',
343        'form_field.cc',
344        'form_field.h',
345        'ftp_directory_listing_response_delegate.cc',
346        'ftp_directory_listing_response_delegate.h',
347        'gl_bindings_skia_cmd_buffer.cc',
348        'gl_bindings_skia_cmd_buffer.h',
349        'glue_serialize.cc',
350        'glue_serialize.h',
351        'idb_bindings.cc',
352        'idb_bindings.h',
353        'image_decoder.cc',
354        'image_decoder.h',
355        'image_resource_fetcher.cc',
356        'image_resource_fetcher.h',
357        'multipart_response_delegate.cc',
358        'multipart_response_delegate.h',
359        'npruntime_util.cc',
360        'npruntime_util.h',
361        'p2p_transport.h',
362        'password_form.cc',
363        'password_form.h',
364        'password_form_dom_manager.cc',
365        'password_form_dom_manager.h',
366        'resource_fetcher.cc',
367        'resource_fetcher.h',
368        'resource_loader_bridge.cc',
369        'resource_loader_bridge.h',
370        'resource_type.h',
371        'scoped_clipboard_writer_glue.h',
372        'simple_webmimeregistry_impl.cc',
373        'simple_webmimeregistry_impl.h',
374        'site_isolation_metrics.cc',
375        'site_isolation_metrics.h',
376        'webaccessibility.cc',
377        'webaccessibility.h',
378        'webclipboard_impl.cc',
379        'webclipboard_impl.h',
380        'web_io_operators.cc',
381        'web_io_operators.h',
382        'webcookie.cc',
383        'webcookie.h',
384        'webcursor.cc',
385        'webcursor.h',
386        'webcursor_gtk.cc',
387        'webcursor_gtk_data.h',
388        'webcursor_mac.mm',
389        'webcursor_win.cc',
390        'webdropdata.cc',
391        'webdropdata_win.cc',
392        'webdropdata.h',
393        'webfileutilities_impl.cc',
394        'webfileutilities_impl.h',
395        'webkit_constants.h',
396        'webkit_glue.cc',
397        'webkit_glue.h',
398        'webkitclient_impl.cc',
399        'webkitclient_impl.h',
400        'webmediaplayer_impl.h',
401        'webmediaplayer_impl.cc',
402        'webmenuitem.cc',
403        'webmenuitem.h',
404        'webmenurunner_mac.h',
405        'webmenurunner_mac.mm',
406        'webpreferences.cc',
407        'webpreferences.h',
408        'websocketstreamhandle_bridge.h',
409        'websocketstreamhandle_delegate.h',
410        'websocketstreamhandle_impl.cc',
411        'websocketstreamhandle_impl.h',
412        'webthemeengine_impl_linux.cc',
413        'webthemeengine_impl_mac.cc',
414        'webthemeengine_impl_win.cc',
415        'weburlloader_impl.cc',
416        'weburlloader_impl.h',
417        'webvideoframe_impl.cc',
418        'webvideoframe_impl.h',
419        'window_open_disposition.h',
420        'window_open_disposition.cc',
421
422        # These files used to be built in the webcore target, but moved here
423        # since part of glue.
424        '../extensions/v8/benchmarking_extension.cc',
425        '../extensions/v8/benchmarking_extension.h',
426        '../extensions/v8/gc_extension.cc',
427        '../extensions/v8/gc_extension.h',
428        '../extensions/v8/heap_profiler_extension.cc',
429        '../extensions/v8/heap_profiler_extension.h',
430        '../extensions/v8/playback_extension.cc',
431        '../extensions/v8/playback_extension.h',
432        '../extensions/v8/profiler_extension.cc',
433        '../extensions/v8/profiler_extension.h',
434
435      ],
436      # When glue is a dependency, it needs to be a hard dependency.
437      # Dependents may rely on files generated by this target or one of its
438      # own hard dependencies.
439      'hard_dependency': 1,
440      'conditions': [
441        ['OS=="linux" or OS=="freebsd" or OS=="openbsd" or OS=="solaris"', {
442          'dependencies': [
443            '<(DEPTH)/build/linux/system.gyp:gtk',
444          ],
445          'sources!': [
446            'plugins/plugin_stubs.cc',
447          ],
448        }, { # else: OS!="linux" and OS!="freebsd" and OS!="openbsd" \
449             # and OS!="solaris"'
450          'sources/': [['exclude', '_(linux|gtk)(_data)?\\.cc$'],
451                       ['exclude', r'/gtk_']],
452        }],
453        ['OS!="mac"', {
454          'sources/': [['exclude', '_mac\\.(cc|mm)$']],
455          'sources!': [
456            'webthemeengine_impl_mac.cc',
457          ],
458        }, {  # else: OS=="mac"
459          'sources/': [['exclude', 'plugin_(lib|list)_posix\\.cc$']],
460          'link_settings': {
461            'libraries': [
462              '$(SDKROOT)/System/Library/Frameworks/QuartzCore.framework',
463            ],
464          },
465        }],
466        ['enable_gpu!=1', {
467          'sources!': [
468            '../plugins/ppapi/ppb_graphics_3d_impl.cc',
469            '../plugins/ppapi/ppb_graphics_3d_impl.h',
470            '../plugins/ppapi/ppb_open_gl_es_impl.cc',
471          ],
472        }],
473        ['OS!="win"', {
474          'sources/': [['exclude', '_win\\.cc$']],
475          'sources!': [
476            'webthemeengine_impl_win.cc',
477          ],
478        }, {  # else: OS=="win"
479          'sources/': [['exclude', '_posix\\.cc$']],
480          'include_dirs': [
481            '<(DEPTH)/third_party/wtl/include',
482          ],
483          'dependencies': [
484            '<(DEPTH)/build/win/system.gyp:cygwin',
485          ],
486          'sources!': [
487            'plugins/plugin_stubs.cc',
488          ],
489          'conditions': [
490            ['inside_chromium_build==1 and component=="shared_library"', {
491              'dependencies': [
492                '<(DEPTH)/third_party/WebKit/Source/WebKit/chromium/WebKit.gyp:webkit',
493                '<(DEPTH)/v8/tools/gyp/v8.gyp:v8',
494               ],
495               'export_dependent_settings': [
496                 '<(DEPTH)/third_party/WebKit/Source/WebKit/chromium/WebKit.gyp:webkit',
497                 '<(DEPTH)/v8/tools/gyp/v8.gyp:v8',
498               ],
499            }],
500          ],
501        }],
502        ['inside_chromium_build==0', {
503          'dependencies': [
504            '<(DEPTH)/webkit/support/setup_third_party.gyp:third_party_headers',
505          ],
506        }],
507      ],
508    },
509  ],
510  'conditions': [
511    ['use_third_party_translations==1', {
512      'targets': [
513        {
514          'target_name': 'inspector_strings',
515          'type': 'none',
516          'variables': {
517            'grit_out_dir': '<(PRODUCT_DIR)/resources/inspector/l10n',
518          },
519          'actions': [
520            {
521              'action_name': 'inspector_strings',
522              'variables': {
523                'grit_grd_file': 'inspector_strings.grd',
524              },
525              'includes': [ '../../build/grit_action.gypi' ],
526            },
527          ],
528          'includes': [ '../../build/grit_target.gypi' ],
529        },
530      ],
531    }],
532  ],
533}
534