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.
4
5{
6  'variables': {
7    'chromium_code': 1,
8  },
9  'targets': [
10    {
11      # GN version: //ui/base
12      'target_name': 'ui_base',
13      'type': '<(component)',
14      'dependencies': [
15        '../../base/base.gyp:base',
16        '../../base/base.gyp:base_i18n',
17        '../../base/base.gyp:base_static',
18        '../../base/third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations',
19        '../../net/net.gyp:net',
20        '../../skia/skia.gyp:skia',
21        '../../third_party/icu/icu.gyp:icui18n',
22        '../../third_party/icu/icu.gyp:icuuc',
23        '../../url/url.gyp:url_lib',
24        '../events/events.gyp:events',
25        '../events/events.gyp:events_base',
26        '../events/platform/events_platform.gyp:events_platform',
27        '../gfx/gfx.gyp:gfx',
28        '../gfx/gfx.gyp:gfx_geometry',
29        '../resources/ui_resources.gyp:ui_resources',
30        '../strings/ui_strings.gyp:ui_strings',
31      ],
32      'defines': [
33        'UI_BASE_IMPLEMENTATION',
34      ],
35      'export_dependent_settings': [
36        '../../net/net.gyp:net',
37        '../gfx/gfx.gyp:gfx',
38      ],
39      'sources' : [
40        # Note: file list duplicated in GN build.
41        'accelerators/accelerator.cc',
42        'accelerators/accelerator.h',
43        'accelerators/accelerator_manager.cc',
44        'accelerators/accelerator_manager.h',
45        'accelerators/menu_label_accelerator_util_linux.cc',
46        'accelerators/menu_label_accelerator_util_linux.h',
47        'accelerators/platform_accelerator.h',
48        'accelerators/platform_accelerator_cocoa.h',
49        'accelerators/platform_accelerator_cocoa.mm',
50        'android/system_ui_resource_manager.h',
51        'android/ui_base_jni_registrar.cc',
52        'android/ui_base_jni_registrar.h',
53        'android/view_android.cc',
54        'android/view_android.h',
55        'android/window_android.cc',
56        'android/window_android.h',
57        'android/window_android_compositor.h',
58        'android/window_android_observer.h',
59        'base_window.cc',
60        'base_window.h',
61        'clipboard/clipboard.cc',
62        'clipboard/clipboard.h',
63        'clipboard/clipboard_android.cc',
64        'clipboard/clipboard_android_initialization.h',
65        'clipboard/clipboard_aura.cc',
66        'clipboard/clipboard_aurax11.cc',
67        'clipboard/clipboard_constants.cc',
68        'clipboard/clipboard_mac.mm',
69        'clipboard/clipboard_types.h',
70        'clipboard/clipboard_util_win.cc',
71        'clipboard/clipboard_util_win.h',
72        'clipboard/clipboard_win.cc',
73        'clipboard/custom_data_helper.cc',
74        'clipboard/custom_data_helper.h',
75        'clipboard/custom_data_helper_linux.cc',
76        'clipboard/custom_data_helper_mac.mm',
77        'clipboard/scoped_clipboard_writer.cc',
78        'clipboard/scoped_clipboard_writer.h',
79        'cocoa/animation_utils.h',
80        'cocoa/appkit_utils.h',
81        'cocoa/appkit_utils.mm',
82        'cocoa/base_view.h',
83        'cocoa/base_view.mm',
84        'cocoa/cocoa_base_utils.h',
85        'cocoa/cocoa_base_utils.mm',
86        'cocoa/controls/blue_label_button.h',
87        'cocoa/controls/blue_label_button.mm',
88        'cocoa/controls/hover_image_menu_button.h',
89        'cocoa/controls/hover_image_menu_button.mm',
90        'cocoa/controls/hover_image_menu_button_cell.h',
91        'cocoa/controls/hover_image_menu_button_cell.mm',
92        'cocoa/controls/hyperlink_button_cell.h',
93        'cocoa/controls/hyperlink_button_cell.mm',
94        'cocoa/controls/hyperlink_text_view.h',
95        'cocoa/controls/hyperlink_text_view.mm',
96        'cocoa/find_pasteboard.h',
97        'cocoa/find_pasteboard.mm',
98        'cocoa/flipped_view.h',
99        'cocoa/flipped_view.mm',
100        'cocoa/focus_tracker.h',
101        'cocoa/focus_tracker.mm',
102        'cocoa/focus_window_set.h',
103        'cocoa/focus_window_set.mm',
104        'cocoa/fullscreen_window_manager.h',
105        'cocoa/fullscreen_window_manager.mm',
106        'cocoa/hover_button.h',
107        'cocoa/hover_button.mm',
108        'cocoa/hover_image_button.h',
109        'cocoa/hover_image_button.mm',
110        'cocoa/menu_controller.h',
111        'cocoa/menu_controller.mm',
112        'cocoa/nib_loading.h',
113        'cocoa/nib_loading.mm',
114        'cocoa/nsgraphics_context_additions.h',
115        'cocoa/nsgraphics_context_additions.mm',
116        'cocoa/nsview_additions.h',
117        'cocoa/nsview_additions.mm',
118        'cocoa/remote_layer_api.h',
119        'cocoa/remote_layer_api.mm',
120        'cocoa/tracking_area.h',
121        'cocoa/tracking_area.mm',
122        'cocoa/underlay_opengl_hosting_window.h',
123        'cocoa/underlay_opengl_hosting_window.mm',
124        'cocoa/view_description.h',
125        'cocoa/view_description.mm',
126        'cocoa/window_size_constants.h',
127        'cocoa/window_size_constants.mm',
128        'cursor/cursor.cc',
129        'cursor/cursor.h',
130        'cursor/cursor_android.cc',
131        'cursor/cursor_loader.h',
132        'cursor/cursor_loader_ozone.cc',
133        'cursor/cursor_loader_ozone.h',
134        'cursor/cursor_loader_win.cc',
135        'cursor/cursor_loader_win.h',
136        'cursor/cursor_loader_x11.cc',
137        'cursor/cursor_loader_x11.h',
138        'cursor/cursor_ozone.cc',
139        'cursor/cursor_util.cc',
140        'cursor/cursor_util.h',
141        'cursor/cursor_win.cc',
142        'cursor/cursor_x11.cc',
143        'cursor/cursors_aura.cc',
144        'cursor/cursors_aura.h',
145        'cursor/image_cursors.cc',
146        'cursor/image_cursors.h',
147        'cursor/ozone/bitmap_cursor_factory_ozone.cc',
148        'cursor/ozone/bitmap_cursor_factory_ozone.h',
149        'default_theme_provider.cc',
150        'default_theme_provider.h',
151        'default_theme_provider_mac.mm',
152        'device_form_factor_android.cc',
153        'device_form_factor_android.h',
154        'device_form_factor_desktop.cc',
155        'device_form_factor_ios.mm',
156        'device_form_factor.h',
157        'dragdrop/cocoa_dnd_util.h',
158        'dragdrop/cocoa_dnd_util.mm',
159        'dragdrop/drag_drop_types.h',
160        'dragdrop/drag_drop_types_win.cc',
161        'dragdrop/drag_source_win.cc',
162        'dragdrop/drag_source_win.h',
163        'dragdrop/drag_utils.cc',
164        'dragdrop/drag_utils.h',
165        'dragdrop/drag_utils_aura.cc',
166        'dragdrop/drag_utils_mac.mm',
167        'dragdrop/drag_utils_win.cc',
168        'dragdrop/drop_target_event.cc',
169        'dragdrop/drop_target_event.h',
170        'dragdrop/drop_target_win.cc',
171        'dragdrop/drop_target_win.h',
172        'dragdrop/file_info.cc',
173        'dragdrop/file_info.h',
174        'dragdrop/os_exchange_data.cc',
175        'dragdrop/os_exchange_data.h',
176        'dragdrop/os_exchange_data_provider_aura.cc',
177        'dragdrop/os_exchange_data_provider_aura.h',
178        'dragdrop/os_exchange_data_provider_aurax11.cc',
179        'dragdrop/os_exchange_data_provider_aurax11.h',
180        'dragdrop/os_exchange_data_provider_mac.h',
181        'dragdrop/os_exchange_data_provider_mac.mm',
182        'dragdrop/os_exchange_data_provider_win.cc',
183        'dragdrop/os_exchange_data_provider_win.h',
184        'hit_test.h',
185        'ime/candidate_window.cc',
186        'ime/candidate_window.h',
187        'ime/chromeos/character_composer.cc',
188        'ime/chromeos/character_composer.h',
189        'ime/chromeos/ime_bridge.cc',
190        'ime/chromeos/ime_bridge.h',
191        'ime/chromeos/ime_keymap.cc',
192        'ime/chromeos/ime_keymap.h',
193        'ime/chromeos/mock_ime_candidate_window_handler.cc',
194        'ime/chromeos/mock_ime_candidate_window_handler.h',
195        'ime/chromeos/mock_ime_engine_handler.cc',
196        'ime/chromeos/mock_ime_engine_handler.h',
197        'ime/chromeos/mock_ime_input_context_handler.cc',
198        'ime/chromeos/mock_ime_input_context_handler.h',
199        'ime/composition_text.cc',
200        'ime/composition_text.h',
201        'ime/composition_text_util_pango.cc',
202        'ime/composition_text_util_pango.h',
203        'ime/composition_underline.h',
204        'ime/dummy_input_method_delegate.cc',
205        'ime/dummy_input_method_delegate.h',
206        'ime/infolist_entry.cc',
207        'ime/infolist_entry.h',
208        'ime/input_method.h',
209        'ime/input_method_auralinux.cc',
210        'ime/input_method_auralinux.h',
211        'ime/input_method_base.cc',
212        'ime/input_method_base.h',
213        'ime/input_method_chromeos.cc',
214        'ime/input_method_chromeos.h',
215        'ime/input_method_delegate.h',
216        'ime/input_method_factory.cc',
217        'ime/input_method_factory.h',
218        'ime/input_method_initializer.cc',
219        'ime/input_method_initializer.h',
220        'ime/input_method_mac.h',
221        'ime/input_method_mac.mm',
222        'ime/input_method_minimal.cc',
223        'ime/input_method_minimal.h',
224        'ime/input_method_observer.h',
225        'ime/input_method_win.cc',
226        'ime/input_method_win.h',
227        'ime/linux/fake_input_method_context.cc',
228        'ime/linux/fake_input_method_context.h',
229        'ime/linux/fake_input_method_context_factory.cc',
230        'ime/linux/fake_input_method_context_factory.h',
231        'ime/linux/linux_input_method_context.h',
232        'ime/linux/linux_input_method_context_factory.cc',
233        'ime/linux/linux_input_method_context_factory.h',
234        'ime/mock_input_method.cc',
235        'ime/mock_input_method.h',
236        'ime/remote_input_method_delegate_win.h',
237        'ime/remote_input_method_win.cc',
238        'ime/remote_input_method_win.h',
239        'ime/text_input_client.cc',
240        'ime/text_input_client.h',
241        'ime/text_input_focus_manager.cc',
242        'ime/text_input_focus_manager.h',
243        'ime/text_input_type.h',
244        'ime/win/imm32_manager.cc',
245        'ime/win/imm32_manager.h',
246        'ime/win/tsf_input_scope.cc',
247        'ime/win/tsf_input_scope.h',
248        'l10n/formatter.cc',
249        'l10n/formatter.h',
250        'l10n/l10n_font_util.cc',
251        'l10n/l10n_font_util.h',
252        'l10n/l10n_util.cc',
253        'l10n/l10n_util.h',
254        'l10n/l10n_util_android.cc',
255        'l10n/l10n_util_android.h',
256        'l10n/l10n_util_collator.h',
257        'l10n/l10n_util_mac.h',
258        'l10n/l10n_util_mac.mm',
259        'l10n/l10n_util_plurals.cc',
260        'l10n/l10n_util_plurals.h',
261        'l10n/l10n_util_posix.cc',
262        'l10n/l10n_util_win.cc',
263        'l10n/l10n_util_win.h',
264        'l10n/time_format.cc',
265        'l10n/time_format.h',
266        'layout.cc',
267        'layout.h',
268        'layout_mac.mm',
269        'models/button_menu_item_model.cc',
270        'models/button_menu_item_model.h',
271        'models/combobox_model.cc',
272        'models/combobox_model.h',
273        'models/combobox_model_observer.h',
274        'models/dialog_model.cc',
275        'models/dialog_model.h',
276        'models/list_model.h',
277        'models/list_model_observer.h',
278        'models/list_selection_model.cc',
279        'models/list_selection_model.h',
280        'models/menu_model.cc',
281        'models/menu_model.h',
282        'models/menu_model_delegate.h',
283        'models/menu_separator_types.h',
284        'models/simple_combobox_model.cc',
285        'models/simple_combobox_model.h',
286        'models/simple_menu_model.cc',
287        'models/simple_menu_model.h',
288        'models/table_model.cc',
289        'models/table_model.h',
290        'models/table_model_observer.h',
291        'models/tree_model.cc',
292        'models/tree_model.h',
293        'models/tree_node_iterator.h',
294        'models/tree_node_model.h',
295        'nine_image_painter_factory.cc',
296        'nine_image_painter_factory.h',
297        'page_transition_types.cc',
298        'page_transition_types.h',
299        'page_transition_types_list.h',
300        'resource/data_pack.cc',
301        'resource/data_pack.h',
302        'resource/resource_bundle.cc',
303        'resource/resource_bundle.h',
304        'resource/resource_bundle_android.cc',
305        'resource/resource_bundle_auralinux.cc',
306        'resource/resource_bundle_ios.mm',
307        'resource/resource_bundle_mac.mm',
308        'resource/resource_bundle_win.cc',
309        'resource/resource_bundle_win.h',
310        'resource/resource_data_dll_win.cc',
311        'resource/resource_data_dll_win.h',
312        'resource/resource_handle.h',
313        'text/bytes_formatting.cc',
314        'text/bytes_formatting.h',
315        'theme_provider.cc',
316        'theme_provider.h',
317        'touch/touch_device.cc',
318        'touch/touch_device.h',
319        'touch/touch_device_android.cc',
320        'touch/touch_device_aurax11.cc',
321        'touch/touch_device_ozone.cc',
322        'touch/touch_device_win.cc',
323        'touch/touch_editing_controller.cc',
324        'touch/touch_editing_controller.h',
325        'touch/touch_enabled.cc',
326        'touch/touch_enabled.h',
327        'ui_base_export.h',
328        'ui_base_exports.cc',
329        'ui_base_paths.cc',
330        'ui_base_paths.h',
331        'ui_base_switches.cc',
332        'ui_base_switches.h',
333        'ui_base_switches_util.cc',
334        'ui_base_switches_util.h',
335        'ui_base_types.cc',
336        'ui_base_types.h',
337        'view_prop.cc',
338        'view_prop.h',
339        'webui/jstemplate_builder.cc',
340        'webui/jstemplate_builder.h',
341        'webui/web_ui_util.cc',
342        'webui/web_ui_util.h',
343        'win/accessibility_ids_win.h',
344        'win/accessibility_misc_utils.cc',
345        'win/accessibility_misc_utils.h',
346        'win/atl_module.h',
347        'win/dpi_setup.cc',
348        'win/dpi_setup.h',
349        'win/foreground_helper.cc',
350        'win/foreground_helper.h',
351        'win/hidden_window.cc',
352        'win/hidden_window.h',
353        'win/hwnd_subclass.cc',
354        'win/hwnd_subclass.h',
355        'win/internal_constants.cc',
356        'win/internal_constants.h',
357        'win/lock_state.cc',
358        'win/lock_state.h',
359        'win/message_box_win.cc',
360        'win/message_box_win.h',
361        'win/mouse_wheel_util.cc',
362        'win/mouse_wheel_util.h',
363        'win/open_file_name_win.cc',
364        'win/open_file_name_win.h',
365        'win/scoped_ole_initializer.cc',
366        'win/scoped_ole_initializer.h',
367        'win/shell.cc',
368        'win/shell.h',
369        'win/touch_input.cc',
370        'win/touch_input.h',
371        'win/window_event_target.cc',
372        'win/window_event_target.h',
373        'window_open_disposition.cc',
374        'window_open_disposition.h',
375        'work_area_watcher_observer.h',
376        'x/selection_owner.cc',
377        'x/selection_owner.h',
378        'x/selection_requestor.cc',
379        'x/selection_requestor.h',
380        'x/selection_utils.cc',
381        'x/selection_utils.h',
382        'x/x11_foreign_window_manager.cc',
383        'x/x11_foreign_window_manager.h',
384        'x/x11_menu_list.cc',
385        'x/x11_menu_list.h',
386        'x/x11_util.cc',
387        'x/x11_util.h',
388        'x/x11_util_internal.h',
389      ],
390      'target_conditions': [
391        ['OS == "ios"', {
392          'sources/': [
393            ['include', '^l10n/l10n_util_mac\\.mm$'],
394          ],
395        }],
396      ],
397      'conditions': [
398        ['OS=="ios"', {
399          # iOS only uses a subset of UI.
400          'sources/': [
401            ['exclude', '\\.(cc|mm)$'],
402            ['include', '_ios\\.(cc|mm)$'],
403            ['include', '(^|/)ios/'],
404            ['include', '^l10n/'],
405            ['include', '^layout'],
406            ['include', '^resource/'],
407            ['include', '^ui_base_'],
408          ],
409          'link_settings': {
410            'libraries': [
411              '$(SDKROOT)/System/Library/Frameworks/CoreGraphics.framework',
412            ],
413          },
414        }],
415        ['use_aura==1', {
416          'sources/': [
417            ['exclude', 'clipboard/clipboard_mac.mm'],
418            ['exclude', 'layout_mac.mm'],
419            ['exclude', 'work_area_watcher_observer.h'],
420          ],
421        }, {  # use_aura!=1
422          'sources!': [
423            'cursor/cursor.cc',
424            'cursor/cursor.h',
425            'cursor/cursor_loader_x11.cc',
426            'cursor/cursor_loader_x11.h',
427            'cursor/cursor_win.cc',
428            'cursor/cursor_x11.cc',
429            'x/selection_owner.cc',
430            'x/selection_owner.h',
431            'x/selection_requestor.cc',
432            'x/selection_requestor.h',
433            'x/selection_utils.cc',
434            'x/selection_utils.h',
435          ]
436        }],
437        ['use_aura==0 or OS!="linux"', {
438          'sources!': [
439            'resource/resource_bundle_auralinux.cc',
440          ],
441        }],
442        ['use_ozone==1', {
443          'dependencies': [
444            '../ozone/ozone.gyp:ozone_base',
445          ],
446        }],
447        ['use_aura==1 and OS=="win"', {
448          'sources/': [
449            ['exclude', 'dragdrop/drag_utils_aura.cc'],
450          ],
451        }],
452        ['use_glib == 1', {
453          'dependencies': [
454            '../../build/linux/system.gyp:fontconfig',
455            '../../build/linux/system.gyp:glib',
456          ],
457        }],
458        ['desktop_linux == 1 or chromeos == 1', {
459          'conditions': [
460            ['toolkit_views==0 and use_aura==0', {
461              # Note: because of gyp predence rules this has to be defined as
462              # 'sources/' rather than 'sources!'.
463              'sources/': [
464                ['exclude', '^dragdrop/drag_utils.cc'],
465                ['exclude', '^dragdrop/drag_utils.h'],
466              ],
467            }, {
468              'sources/': [
469                ['include', '^dragdrop/os_exchange_data.cc'],
470                ['include', '^dragdrop/os_exchange_data.h'],
471                ['include', '^nine_image_painter_factory.cc'],
472                ['include', '^nine_image_painter_factory.h'],
473              ],
474            }],
475          ],
476        }],
477        ['use_pango==1', {
478          'dependencies': [
479            '../../build/linux/system.gyp:pangocairo',
480          ],
481        }],
482        ['OS=="win" or use_clipboard_aurax11==1', {
483          'sources!': [
484            'clipboard/clipboard_aura.cc',
485          ],
486        }, {
487          'sources!': [
488            'clipboard/clipboard_aurax11.cc',
489          ],
490        }],
491        ['chromeos==1 or (use_aura==1 and OS=="linux" and use_x11==0)', {
492          'sources!': [
493            'dragdrop/os_exchange_data_provider_aurax11.cc',
494            'touch/touch_device.cc',
495          ],
496        }, {
497          'sources!': [
498            'dragdrop/os_exchange_data_provider_aura.cc',
499            'dragdrop/os_exchange_data_provider_aura.h',
500            'touch/touch_device_aurax11.cc',
501          ],
502        }],
503        ['OS=="win"', {
504          'sources!': [
505            'touch/touch_device.cc',
506          ],
507          'include_dirs': [
508            '../..',
509            '../../third_party/wtl/include',
510          ],
511          # TODO(jschuh): C4267: http://crbug.com/167187 size_t -> int
512          # C4324 is structure was padded due to __declspec(align()), which is
513          # uninteresting.
514          'msvs_disabled_warnings': [ 4267, 4324 ],
515          'msvs_settings': {
516            'VCLinkerTool': {
517              'DelayLoadDLLs': [
518                'd2d1.dll',
519                'd3d10_1.dll',
520                'dwmapi.dll',
521              ],
522              'AdditionalDependencies': [
523                'd2d1.lib',
524                'd3d10_1.lib',
525                'dwmapi.lib',
526              ],
527            },
528          },
529          'link_settings': {
530            'libraries': [
531              '-limm32.lib',
532              '-ld2d1.lib',
533              '-ldwmapi.lib',
534              '-loleacc.lib',
535            ],
536          },
537        },{  # OS!="win"
538          'conditions': [
539            ['use_aura==0', {
540              'sources!': [
541                'view_prop.cc',
542                'view_prop.h',
543              ],
544            }],
545          ],
546        }],
547        ['OS=="mac"', {
548          'dependencies': [
549            '../../third_party/mozilla/mozilla.gyp:mozilla',
550          ],
551          'sources!': [
552            'cursor/image_cursors.cc',
553            'cursor/image_cursors.h',
554            'dragdrop/drag_utils.cc',
555            'dragdrop/drag_utils.h',
556          ],
557          'link_settings': {
558            'libraries': [
559              '$(SDKROOT)/System/Library/Frameworks/Accelerate.framework',
560              '$(SDKROOT)/System/Library/Frameworks/AudioUnit.framework',
561              '$(SDKROOT)/System/Library/Frameworks/CoreVideo.framework',
562            ],
563          },
564        }],
565        ['use_x11==1', {
566          'all_dependent_settings': {
567            'ldflags': [
568              '-L<(PRODUCT_DIR)',
569            ],
570          },
571          'dependencies': [
572            '../../build/linux/system.gyp:x11',
573            '../../build/linux/system.gyp:xcursor',
574            '../../build/linux/system.gyp:xext',
575            '../../build/linux/system.gyp:xfixes',
576            '../../build/linux/system.gyp:xrender',  # For XRender* function calls in x11_util.cc.
577            '../events/platform/x11/x11_events_platform.gyp:x11_events_platform',
578          ],
579        }],
580        ['toolkit_views==0', {
581          'sources!': [
582            'dragdrop/drag_drop_types.h',
583            'dragdrop/drop_target_event.cc',
584            'dragdrop/drop_target_event.h',
585            'dragdrop/os_exchange_data.cc',
586            'dragdrop/os_exchange_data.h',
587            'nine_image_painter_factory.cc',
588            'nine_image_painter_factory.h',
589          ],
590        }],
591        ['OS=="android"', {
592          'sources!': [
593            'cursor/image_cursors.cc',
594            'cursor/image_cursors.h',
595            'default_theme_provider.cc',
596            'dragdrop/drag_utils.cc',
597            'dragdrop/drag_utils.h',
598            'l10n/l10n_font_util.cc',
599            'models/button_menu_item_model.cc',
600            'models/dialog_model.cc',
601            'theme_provider.cc',
602            'touch/touch_device.cc',
603            'touch/touch_editing_controller.cc',
604            'ui_base_types.cc',
605          ],
606          'dependencies': [
607            'ui_base_jni_headers',
608          ],
609          'link_settings': {
610            'libraries': [
611              '-ljnigraphics',
612            ],
613          },
614        }],
615        ['OS=="android" and android_webview_build==0', {
616          'dependencies': [
617            '../android/ui_android.gyp:ui_java',
618          ],
619        }],
620        ['OS=="android" and use_aura==0', {
621          'sources!': [
622            'cursor/cursor_android.cc'
623          ],
624        }],
625        ['OS=="android" and use_aura==1', {
626          'sources!': [
627            'clipboard/clipboard_aura.cc'
628          ],
629        }],
630        ['OS=="android" or OS=="ios"', {
631          'sources!': [
632            'device_form_factor_desktop.cc'
633          ],
634        }],
635        ['OS=="linux"', {
636          'libraries': [
637            '-ldl',
638          ],
639        }],
640        ['use_system_icu==1', {
641          # When using the system icu, the icu targets generate shim headers
642          # which are included by public headers in the ui target, so we need
643          # ui to be a hard dependency for all its users.
644          'hard_dependency': 1,
645        }],
646        ['toolkit_views==0 and use_aura==0', {
647          'sources!': [
648            'ime/input_method_factory.cc',
649            'ime/input_method_factory.h',
650            'ime/input_method_minimal.cc',
651            'ime/input_method_minimal.h',
652          ],
653        }],
654        ['chromeos==0', {
655          'sources!': [
656            'ime/input_method_chromeos.cc',
657            'ime/input_method_chromeos.h',
658          ],
659        }],
660        ['chromeos==1', {
661          'dependencies': [
662            '../../chromeos/chromeos.gyp:chromeos',
663          ],
664        }],
665        ['OS!="win"', {
666          'sources!': [
667            'ime/input_method_imm32.cc',
668            'ime/input_method_imm32.h',
669          ],
670        }],
671        ['use_aura==0 or (desktop_linux==0 and use_ozone==0)', {
672          'sources!': [
673            'ime/input_method_auralinux.cc',
674            'ime/input_method_auralinux.h',
675            'ime/linux/fake_input_method_context.cc',
676            'ime/linux/fake_input_method_context.h',
677            'ime/linux/fake_input_method_context_factory.cc',
678            'ime/linux/fake_input_method_context_factory.h',
679            'ime/linux/linux_input_method_context.h',
680            'ime/linux/linux_input_method_context_factory.cc',
681            'ime/linux/linux_input_method_context_factory.h',
682          ],
683        }],
684        ['use_x11==0', {
685          'sources!': [
686            'ime/composition_text_util_pango.cc',
687            'ime/composition_text_util_pango.h',
688          ],
689        }],
690      ],
691    },
692    {
693      # GN version: //ui/base:test_support
694      'target_name': 'ui_base_test_support',
695      'dependencies': [
696        '../../base/base.gyp:base',
697        '../../skia/skia.gyp:skia',
698        '../../testing/gtest.gyp:gtest',
699        '../gfx/gfx.gyp:gfx',
700        '../gfx/gfx.gyp:gfx_geometry',
701      ],
702      'sources': [
703        # Note: file list duplicated in GN build.
704        'test/ui_controls.h',
705        'test/ui_controls_aura.cc',
706        'test/ui_controls_internal_win.cc',
707        'test/ui_controls_internal_win.h',
708        'test/ui_controls_mac.mm',
709        'test/ui_controls_win.cc',
710      ],
711      'include_dirs': [
712        '../..',
713      ],
714      'conditions': [
715        ['OS!="ios"', {
716          'type': 'static_library',
717            'sources': [
718              'ime/dummy_input_method.cc',
719              'ime/dummy_input_method.h',
720              'ime/dummy_text_input_client.cc',
721              'ime/dummy_text_input_client.h',
722            ],
723        }, {  # OS=="ios"
724          # None of the sources in this target are built on iOS, resulting in
725          # link errors when building targets that depend on this target
726          # because the static library isn't found. If this target is changed
727          # to have sources that are built on iOS, the target should be changed
728          # to be of type static_library on all platforms.
729          'type': 'none',
730        }],
731        ['use_aura==1', {
732          'sources!': [
733            'test/ui_controls_mac.mm',
734            'test/ui_controls_win.cc',
735          ],
736        }],
737      ],
738    },
739  ],
740  'conditions': [
741    ['OS=="android"' , {
742       'targets': [
743         {
744           # GN version: //ui/base:ui_base_jni_headers
745           'target_name': 'ui_base_jni_headers',
746           'type': 'none',
747           'sources': [
748             # Note: file list duplicated in GN build.
749             '../android/java/src/org/chromium/ui/base/Clipboard.java',
750             '../android/java/src/org/chromium/ui/base/DeviceFormFactor.java',
751             '../android/java/src/org/chromium/ui/base/LocalizationUtils.java',
752             '../android/java/src/org/chromium/ui/base/ResourceBundle.java',
753             '../android/java/src/org/chromium/ui/base/SelectFileDialog.java',
754             '../android/java/src/org/chromium/ui/base/TouchDevice.java',
755             '../android/java/src/org/chromium/ui/base/ViewAndroid.java',
756             '../android/java/src/org/chromium/ui/base/WindowAndroid.java',
757           ],
758           'variables': {
759             'jni_gen_package': 'ui',
760           },
761           'includes': [ '../../build/jni_generator.gypi' ],
762         },
763       ],
764    }],
765  ],
766}
767