Update To 11.40.268.0
[platform/framework/web/crosswalk.git] / src / ui / base / BUILD.gn
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 import("//build/config/ui.gni")
6
7 if (is_android) {
8   import("//build/config/android/config.gni")
9   import("//build/config/android/rules.gni")
10 }
11
12 build_ime = !is_ios
13
14 component("base") {
15   output_name = "ui_base"
16   sources = [
17     "accelerators/accelerator.cc",
18     "accelerators/accelerator.h",
19     "accelerators/accelerator_manager.cc",
20     "accelerators/accelerator_manager.h",
21     "accelerators/menu_label_accelerator_util_linux.cc",
22     "accelerators/menu_label_accelerator_util_linux.h",
23     "accelerators/platform_accelerator.h",
24     "accelerators/platform_accelerator_cocoa.h",
25     "accelerators/platform_accelerator_cocoa.mm",
26     "android/system_ui_resource_manager.h",
27     "android/ui_base_jni_registrar.cc",
28     "android/ui_base_jni_registrar.h",
29     "android/view_android.cc",
30     "android/view_android.h",
31     "android/window_android.cc",
32     "android/window_android.h",
33     "android/window_android_compositor.h",
34     "android/window_android_observer.h",
35     "base_window.cc",
36     "base_window.h",
37     "clipboard/clipboard.cc",
38     "clipboard/clipboard.h",
39     "clipboard/clipboard_android.cc",
40     "clipboard/clipboard_android.h",
41     "clipboard/clipboard_constants.cc",
42     "clipboard/clipboard_mac.h",
43     "clipboard/clipboard_mac.mm",
44     "clipboard/clipboard_types.h",
45     "clipboard/clipboard_util_win.cc",
46     "clipboard/clipboard_util_win.h",
47     "clipboard/clipboard_win.cc",
48     "clipboard/clipboard_win.h",
49     "clipboard/custom_data_helper.cc",
50     "clipboard/custom_data_helper.h",
51     "clipboard/custom_data_helper_linux.cc",
52     "clipboard/custom_data_helper_mac.mm",
53     "clipboard/scoped_clipboard_writer.cc",
54     "clipboard/scoped_clipboard_writer.h",
55     "cocoa/animation_utils.h",
56     "cocoa/appkit_utils.h",
57     "cocoa/appkit_utils.mm",
58     "cocoa/base_view.h",
59     "cocoa/base_view.mm",
60     "cocoa/cocoa_base_utils.h",
61     "cocoa/cocoa_base_utils.mm",
62     "cocoa/controls/blue_label_button.h",
63     "cocoa/controls/blue_label_button.mm",
64     "cocoa/controls/hover_image_menu_button.h",
65     "cocoa/controls/hover_image_menu_button.mm",
66     "cocoa/controls/hover_image_menu_button_cell.h",
67     "cocoa/controls/hover_image_menu_button_cell.mm",
68     "cocoa/controls/hyperlink_button_cell.h",
69     "cocoa/controls/hyperlink_button_cell.mm",
70     "cocoa/controls/hyperlink_text_view.h",
71     "cocoa/controls/hyperlink_text_view.mm",
72     "cocoa/find_pasteboard.h",
73     "cocoa/find_pasteboard.mm",
74     "cocoa/flipped_view.h",
75     "cocoa/flipped_view.mm",
76     "cocoa/focus_tracker.h",
77     "cocoa/focus_tracker.mm",
78     "cocoa/focus_window_set.h",
79     "cocoa/focus_window_set.mm",
80     "cocoa/fullscreen_window_manager.h",
81     "cocoa/fullscreen_window_manager.mm",
82     "cocoa/hover_button.h",
83     "cocoa/hover_button.mm",
84     "cocoa/hover_image_button.h",
85     "cocoa/hover_image_button.mm",
86     "cocoa/menu_controller.h",
87     "cocoa/menu_controller.mm",
88     "cocoa/nib_loading.h",
89     "cocoa/nib_loading.mm",
90     "cocoa/nsgraphics_context_additions.h",
91     "cocoa/nsgraphics_context_additions.mm",
92     "cocoa/nsview_additions.h",
93     "cocoa/nsview_additions.mm",
94     "cocoa/remote_layer_api.h",
95     "cocoa/remote_layer_api.mm",
96     "cocoa/tracking_area.h",
97     "cocoa/tracking_area.mm",
98     "cocoa/underlay_opengl_hosting_window.h",
99     "cocoa/underlay_opengl_hosting_window.mm",
100     "cocoa/view_description.h",
101     "cocoa/view_description.mm",
102     "cocoa/window_size_constants.h",
103     "cocoa/window_size_constants.mm",
104     "cursor/cursor.cc",
105     "cursor/cursor.h",
106     "cursor/cursor_android.cc",
107     "cursor/cursor_loader.h",
108     "cursor/cursor_util.cc",
109     "cursor/cursor_util.h",
110     "cursor/cursor_win.cc",
111     "cursor/cursors_aura.cc",
112     "cursor/cursors_aura.h",
113     "cursor/image_cursors.cc",
114     "cursor/image_cursors.h",
115     "default_theme_provider.cc",
116     "default_theme_provider.h",
117     "default_theme_provider_mac.mm",
118     "device_form_factor_android.cc",
119     "device_form_factor_android.h",
120     "device_form_factor_desktop.cc",
121     "device_form_factor_ios.mm",
122     "device_form_factor.h",
123     "dragdrop/cocoa_dnd_util.h",
124     "dragdrop/cocoa_dnd_util.mm",
125     "dragdrop/drag_drop_types.h",
126     "dragdrop/drag_drop_types_win.cc",
127     "dragdrop/drag_source_win.cc",
128     "dragdrop/drag_source_win.h",
129     "dragdrop/drag_utils.cc",
130     "dragdrop/drag_utils.h",
131     "dragdrop/drag_utils_aura.cc",
132     "dragdrop/drag_utils_mac.mm",
133     "dragdrop/drag_utils_win.cc",
134     "dragdrop/drop_target_event.cc",
135     "dragdrop/drop_target_event.h",
136     "dragdrop/drop_target_win.cc",
137     "dragdrop/drop_target_win.h",
138     "dragdrop/file_info.cc",
139     "dragdrop/file_info.h",
140     "dragdrop/os_exchange_data.cc",
141     "dragdrop/os_exchange_data.h",
142     "dragdrop/os_exchange_data_provider_mac.h",
143     "dragdrop/os_exchange_data_provider_mac.mm",
144     "dragdrop/os_exchange_data_provider_win.cc",
145     "dragdrop/os_exchange_data_provider_win.h",
146     "hit_test.h",
147     "l10n/formatter.cc",
148     "l10n/formatter.h",
149     "l10n/l10n_font_util.cc",
150     "l10n/l10n_font_util.h",
151     "l10n/l10n_util.cc",
152     "l10n/l10n_util.h",
153     "l10n/l10n_util_android.cc",
154     "l10n/l10n_util_android.h",
155     "l10n/l10n_util_collator.h",
156     "l10n/l10n_util_mac.h",
157     "l10n/l10n_util_mac.mm",
158     "l10n/l10n_util_plurals.cc",
159     "l10n/l10n_util_plurals.h",
160     "l10n/l10n_util_posix.cc",
161     "l10n/l10n_util_win.cc",
162     "l10n/l10n_util_win.h",
163     "l10n/time_format.cc",
164     "l10n/time_format.h",
165     "layout.cc",
166     "layout.h",
167     "layout_mac.mm",
168     "models/button_menu_item_model.cc",
169     "models/button_menu_item_model.h",
170     "models/combobox_model.cc",
171     "models/combobox_model.h",
172     "models/combobox_model_observer.h",
173     "models/dialog_model.cc",
174     "models/dialog_model.h",
175     "models/list_model.h",
176     "models/list_model_observer.h",
177     "models/list_selection_model.cc",
178     "models/list_selection_model.h",
179     "models/menu_model.cc",
180     "models/menu_model.h",
181     "models/menu_model_delegate.h",
182     "models/menu_separator_types.h",
183     "models/simple_combobox_model.cc",
184     "models/simple_combobox_model.h",
185     "models/simple_menu_model.cc",
186     "models/simple_menu_model.h",
187     "models/table_model.cc",
188     "models/table_model.h",
189     "models/table_model_observer.h",
190     "models/tree_model.cc",
191     "models/tree_model.h",
192     "models/tree_node_iterator.h",
193     "models/tree_node_model.h",
194     "nine_image_painter_factory.cc",
195     "nine_image_painter_factory.h",
196     "page_transition_types.cc",
197     "page_transition_types.h",
198     "page_transition_types_list.h",
199     "resource/data_pack.cc",
200     "resource/data_pack.h",
201     "resource/resource_bundle.cc",
202     "resource/resource_bundle.h",
203     "resource/resource_bundle_android.cc",
204     "resource/resource_bundle_auralinux.cc",
205     "resource/resource_bundle_ios.mm",
206     "resource/resource_bundle_mac.mm",
207     "resource/resource_bundle_win.cc",
208     "resource/resource_bundle_win.h",
209     "resource/resource_data_dll_win.cc",
210     "resource/resource_data_dll_win.h",
211     "resource/resource_handle.h",
212     "text/bytes_formatting.cc",
213     "text/bytes_formatting.h",
214     "theme_provider.cc",
215     "theme_provider.h",
216     "touch/touch_device.h",
217     "touch/touch_editing_controller.cc",
218     "touch/touch_editing_controller.h",
219     "touch/touch_enabled.cc",
220     "touch/touch_enabled.h",
221     "ui_base_export.h",
222     "ui_base_exports.cc",
223     "ui_base_paths.cc",
224     "ui_base_paths.h",
225     "ui_base_switches.cc",
226     "ui_base_switches.h",
227     "ui_base_switches_util.cc",
228     "ui_base_switches_util.h",
229     "ui_base_types.cc",
230     "ui_base_types.h",
231     "view_prop.cc",
232     "view_prop.h",
233     "webui/jstemplate_builder.cc",
234     "webui/jstemplate_builder.h",
235     "webui/web_ui_util.cc",
236     "webui/web_ui_util.h",
237     "win/accessibility_ids_win.h",
238     "win/accessibility_misc_utils.cc",
239     "win/accessibility_misc_utils.h",
240     "win/atl_module.h",
241     "win/foreground_helper.cc",
242     "win/foreground_helper.h",
243     "win/hidden_window.cc",
244     "win/hidden_window.h",
245     "win/hwnd_subclass.cc",
246     "win/hwnd_subclass.h",
247     "win/internal_constants.cc",
248     "win/internal_constants.h",
249     "win/lock_state.cc",
250     "win/lock_state.h",
251     "win/open_file_name_win.cc",
252     "win/open_file_name_win.h",
253     "win/message_box_win.cc",
254     "win/message_box_win.h",
255     "win/mouse_wheel_util.cc",
256     "win/mouse_wheel_util.h",
257     "win/scoped_ole_initializer.cc",
258     "win/scoped_ole_initializer.h",
259     "win/shell.cc",
260     "win/shell.h",
261     "win/touch_input.cc",
262     "win/touch_input.h",
263     "win/window_event_target.cc",
264     "win/window_event_target.h",
265     "window_open_disposition.cc",
266     "window_open_disposition.h",
267     "work_area_watcher_observer.h",
268   ]
269
270   if (is_win) {
271     sources += [ "touch/touch_device_win.cc" ]
272   } else if (is_android) {
273     sources += [ "touch/touch_device_android.cc" ]
274   } else if (use_ozone) {
275     sources += [ "touch/touch_device_ozone.cc" ]
276   } else if (use_aura && use_x11) { 
277     sources += [ "touch/touch_device_aurax11.cc" ]
278   } else {
279     # Empty implementation for all other cases.
280     sources += [ "touch/touch_device.cc" ]
281   }
282
283   defines = [ "UI_BASE_IMPLEMENTATION" ]
284
285   public_deps = [
286     "//base",
287     "//skia",
288     "//ui/events/platform",
289     "//ui/events:events_base",
290     "//ui/gfx",
291     "//ui/gfx/geometry",
292   ]
293   deps = [
294     "//base/third_party/dynamic_annotations",
295     "//base:base_static",
296     "//base:i18n",
297     "//net",
298     "//third_party/icu",
299     "//ui/resources",
300     "//ui/strings",
301     "//url",
302   ]
303
304   if (build_ime) {
305     if (!is_android) {
306       deps += [
307         "//ui/events",
308       ]
309     }
310
311     sources += [
312       "ime/candidate_window.cc",
313       "ime/candidate_window.h",
314       "ime/chromeos/character_composer.cc",
315       "ime/chromeos/character_composer.h",
316       "ime/chromeos/ime_bridge.cc",
317       "ime/chromeos/ime_bridge.h",
318       "ime/chromeos/ime_keymap.cc",
319       "ime/chromeos/ime_keymap.h",
320       "ime/chromeos/mock_ime_candidate_window_handler.cc",
321       "ime/chromeos/mock_ime_candidate_window_handler.h",
322       "ime/chromeos/mock_ime_engine_handler.cc",
323       "ime/chromeos/mock_ime_engine_handler.h",
324       "ime/chromeos/mock_ime_input_context_handler.cc",
325       "ime/chromeos/mock_ime_input_context_handler.h",
326       "ime/composition_text.cc",
327       "ime/composition_text.h",
328       "ime/composition_text_util_pango.cc",
329       "ime/composition_text_util_pango.h",
330       "ime/composition_underline.h",
331       "ime/dummy_input_method_delegate.cc",
332       "ime/dummy_input_method_delegate.h",
333       "ime/infolist_entry.cc",
334       "ime/infolist_entry.h",
335       "ime/input_method.h",
336       "ime/input_method_auralinux.cc",
337       "ime/input_method_auralinux.h",
338       "ime/input_method_base.cc",
339       "ime/input_method_base.h",
340       "ime/input_method_chromeos.cc",
341       "ime/input_method_chromeos.h",
342       "ime/input_method_delegate.h",
343       "ime/input_method_factory.cc",
344       "ime/input_method_factory.h",
345       "ime/input_method_initializer.cc",
346       "ime/input_method_initializer.h",
347       "ime/input_method_mac.h",
348       "ime/input_method_mac.mm",
349       "ime/input_method_minimal.cc",
350       "ime/input_method_minimal.h",
351       "ime/input_method_observer.h",
352       "ime/input_method_win.cc",
353       "ime/input_method_win.h",
354       "ime/linux/fake_input_method_context.cc",
355       "ime/linux/fake_input_method_context.h",
356       "ime/linux/fake_input_method_context_factory.cc",
357       "ime/linux/fake_input_method_context_factory.h",
358       "ime/linux/linux_input_method_context.h",
359       "ime/linux/linux_input_method_context_factory.cc",
360       "ime/linux/linux_input_method_context_factory.h",
361       "ime/mock_input_method.cc",
362       "ime/mock_input_method.h",
363       "ime/remote_input_method_delegate_win.h",
364       "ime/remote_input_method_win.cc",
365       "ime/remote_input_method_win.h",
366       "ime/text_input_client.cc",
367       "ime/text_input_client.h",
368       "ime/text_input_focus_manager.cc",
369       "ime/text_input_focus_manager.h",
370       "ime/text_input_type.h",
371       "ime/win/imm32_manager.cc",
372       "ime/win/imm32_manager.h",
373       "ime/win/tsf_input_scope.cc",
374       "ime/win/tsf_input_scope.h",
375     ]
376
377     if (!use_aura || (!is_linux && !use_ozone)) {
378       sources -= [
379         "ime/input_method_auralinux.cc",
380         "ime/input_method_auralinux.h",
381       ]
382     }
383
384     if (!toolkit_views && !use_aura) {
385       sources -= [
386         "ime/input_method_factory.cc",
387         "ime/input_method_factory.h",
388         "ime/input_method_minimal.cc",
389         "ime/input_method_minimal.h",
390       ]
391     }
392
393     if (is_chromeos) {
394       deps += [
395         "//chromeos",
396       ]
397     }
398
399     if (use_pango) {
400       configs += [ "//build/config/linux:pangocairo" ]
401     } else {
402       sources -= [
403         "ime/composition_text_util_pango.cc",
404         "ime/composition_text_util_pango.h",
405       ]
406     }
407   }
408
409   if (is_ios) {
410     sources += [
411       "l10n/l10n_util_mac.h",
412       "l10n/l10n_util_mac.mm",
413     ]
414   }
415
416   if (toolkit_views) {
417     deps += [
418       "//ui/events",
419     ]
420   }
421
422   if (use_x11 && use_aura) {
423     sources += [
424       "x/selection_owner.cc",
425       "x/selection_owner.h",
426       "x/selection_requestor.cc",
427       "x/selection_requestor.h",
428       "x/selection_utils.cc",
429       "x/selection_utils.h",
430     ]
431   }
432
433   if (use_aura) {
434     deps += [
435       "//ui/events",
436     ]
437   } else {
438     sources -= [
439       "cursor/cursor.cc",
440       "cursor/cursor.h",
441       "dragdrop/drag_utils_aura.cc",
442     ]
443   }
444   if (use_x11) {
445     sources += [
446       "x/x11_foreign_window_manager.cc",
447       "x/x11_foreign_window_manager.h",
448       "x/x11_menu_list.cc",
449       "x/x11_menu_list.h",
450       "x/x11_util.cc",
451       "x/x11_util.h",
452       "x/x11_util_internal.h",
453     ]
454     deps += [ "//ui/gfx/x" ]
455   }
456
457   if (!use_aura || !is_linux) {
458     sources -= [
459       "resource/resource_bundle_auralinux.cc",
460     ]
461   }
462
463   if (use_aura && is_win) {
464     sources -= [
465       "dragdrop/drag_utils_aura.cc",
466     ]
467   }
468
469   if (is_linux) {
470     configs += [
471       "//build/config/linux:fontconfig",
472       "//build/config/linux:glib",
473     ]
474   }
475
476   if ((is_linux && !is_chromeos) || is_chromeos) {
477     if (!toolkit_views && !use_aura) {
478       sources -= [
479         "dragdrop/drag_utils.cc",
480         "dragdrop/drag_utils.h",
481       ]
482     }
483   }
484
485   if (is_chromeos || (use_aura && is_linux && !use_x11)) {
486     sources += [
487       "dragdrop/os_exchange_data_provider_aura.cc",
488       "dragdrop/os_exchange_data_provider_aura.h",
489     ]
490   }
491
492   libs = []
493   if (is_win) {
494     sources += [
495       "cursor/cursor_loader_win.cc",
496       "cursor/cursor_loader_win.h",
497     ]
498     deps += [
499       "//third_party/wtl",
500     ]
501     cflags = [
502       "/wd4267",  # TODO(jschuh): C4267: http://crbug.com/167187 size_t -> int.
503       "/wd4324",  # Structure was padded due to __declspec(align()), which is
504                   # uninteresting.
505     ]
506     ldflags = [
507       "/DELAYLOAD:d2d1.dll",
508       "/DELAYLOAD:d3d10_1.dll",
509       "/DELAYLOAD:dwmapi.dll",
510     ]
511     libs += [
512       "d2d1.lib",
513       "d3d10_1.lib",
514       "dwmapi.lib",
515       "imm32.lib",
516       "d2d1.lib",
517       "dwmapi.lib",
518       "oleacc.lib",
519     ]
520   } else {
521     if (!use_aura) {
522       sources -= [
523         "view_prop.cc",
524         "view_prop.h",
525       ]
526     }
527   }
528
529   if (is_mac) {
530     deps += [
531       "//third_party/mozilla",
532     ]
533
534     sources -= [
535       "cursor/image_cursors.cc",
536       "cursor/image_cursors.h",
537       "dragdrop/drag_utils.cc",
538       "dragdrop/drag_utils.h",
539     ]
540
541     libs += [
542       "Accelerate.framework",
543       "AudioUnit.framework",
544       "CoreVideo.framework",
545     ]
546   }
547
548   if (use_x11) {
549     #'all_dependent_settings': {
550       #'ldflags': [
551         #'-L<(PRODUCT_DIR)',
552       #],
553     #},
554     configs += [
555       "//build/config/linux:x11"
556     ]
557   }
558
559   if (use_aura) {
560     if (use_x11) {
561       sources += [
562         "cursor/cursor_loader_x11.cc",
563         "cursor/cursor_loader_x11.h",
564         "cursor/cursor_x11.cc",
565       ]
566       if (!is_chromeos) {
567         # These Aura X11 files aren't used on ChromeOS.
568         sources += [
569           "dragdrop/os_exchange_data_provider_aurax11.cc",
570           "dragdrop/os_exchange_data_provider_aurax11.h",
571         ]
572       }
573     }
574   }
575   if (use_ozone) {
576     sources += [
577       "cursor/cursor_loader_ozone.cc",
578       "cursor/cursor_loader_ozone.h",
579       "cursor/cursor_ozone.cc",
580       "cursor/ozone/bitmap_cursor_factory_ozone.cc",
581       "cursor/ozone/bitmap_cursor_factory_ozone.h",
582     ]
583
584     deps += [
585       "//ui/ozone:ozone_base",
586     ]
587   }
588
589   if (!toolkit_views) {
590     sources -= [
591       "dragdrop/drag_drop_types.h",
592       "dragdrop/drop_target_event.cc",
593       "dragdrop/drop_target_event.h",
594       "dragdrop/os_exchange_data.cc",
595       "dragdrop/os_exchange_data.h",
596       "nine_image_painter_factory.cc",
597       "nine_image_painter_factory.h",
598     ]
599   }
600
601   if (is_android) {
602     sources -= [
603       "cursor/image_cursors.cc",
604       "cursor/image_cursors.h",
605       "default_theme_provider.cc",
606       "dragdrop/drag_utils.cc",
607       "dragdrop/drag_utils.h",
608       "l10n/l10n_font_util.cc",
609       "models/button_menu_item_model.cc",
610       "models/dialog_model.cc",
611       "theme_provider.cc",
612       "touch/touch_editing_controller.cc",
613       "ui_base_types.cc",
614     ]
615
616     deps += [
617       ":ui_base_jni_headers",
618     ]
619
620     libs += [
621       "jnigraphics",
622     ]
623   }
624
625   if (is_android && is_android_webview_build) {
626     deps += [
627       #TODO(GYP): port this component to GN.
628       #"//ui/android:ui_java",
629     ]
630   }
631
632   if (is_android && !use_aura) {
633     sources -= [
634       "cursor/cursor_android.cc",
635     ]
636   }
637
638   # Aura clipboard.
639   if (use_aura) {
640     if (use_x11) {
641       sources += [ "clipboard/clipboard_aurax11.cc" ]
642     } else if (!is_win) {
643       # This file is used for all non-X11, non-Windows aura Builds.
644       sources += [ "clipboard/clipboard_aura.cc" ]
645     }
646   }
647
648   if (is_android || is_ios) {
649     sources -= [
650       "device_form_factor_desktop.cc",
651     ]
652   }
653 }
654
655 source_set("test_support") {
656   testonly = true
657   sources = [
658     "test/ui_controls.h",
659     "test/ui_controls_aura.cc",
660     "test/ui_controls_internal_win.cc",
661     "test/ui_controls_internal_win.h",
662     "test/ui_controls_mac.mm",
663     "test/ui_controls_win.cc",
664   ]
665
666   public_deps = [
667     ":base",
668   ]
669   deps = [
670     "//base",
671     "//skia",
672     "//testing/gtest",
673     "//ui/events:events_base",
674     "//ui/gfx",
675     "//ui/gfx/geometry",
676   ]
677
678   if (build_ime) {
679     sources += [
680       "ime/dummy_input_method.cc",
681       "ime/dummy_input_method.h",
682       "ime/dummy_text_input_client.cc",
683       "ime/dummy_text_input_client.h",
684     ]
685   }
686 }
687
688 if (is_android) {
689   generate_jni("ui_base_jni_headers") {
690     sources = [
691       "../android/java/src/org/chromium/ui/base/Clipboard.java",
692       "../android/java/src/org/chromium/ui/base/DeviceFormFactor.java",
693       "../android/java/src/org/chromium/ui/base/LocalizationUtils.java",
694       "../android/java/src/org/chromium/ui/base/ResourceBundle.java",
695       "../android/java/src/org/chromium/ui/base/SelectFileDialog.java",
696       "../android/java/src/org/chromium/ui/base/TouchDevice.java",
697       "../android/java/src/org/chromium/ui/base/ViewAndroid.java",
698       "../android/java/src/org/chromium/ui/base/WindowAndroid.java",
699     ]
700     jni_package = "base"
701   }
702 }
703
704 # TODO(GYP): Make this work on Android and reenable it.
705 if (!is_android) {
706 # TODO(tfarina): Rename this target to ui_base_unittests.
707 # In order to do this we will need to keep this target, add a dummy
708 # ui_base_unittests target that just points to ui_unittests, change
709 # buildbot code to reference the new 'ui_base_unittests' target.
710 # After buildbot is updated, we can make the changes in Chromium and
711 # remove 'ui_unittests' target. crbug.com/331829
712 # GYP version: ui/base/ui_base_tests.gyp:ui_unittests
713 test("ui_unittests") {
714   sources = [
715     "l10n/l10n_util_mac_unittest.mm",
716     "l10n/l10n_util_unittest.cc",
717     "l10n/l10n_util_win_unittest.cc",
718     "l10n/time_format_unittest.cc",
719     "layout_unittest.cc",
720     "models/tree_node_iterator_unittest.cc",
721     "resource/data_pack_literal.cc",
722     "resource/data_pack_unittest.cc",
723     "resource/resource_bundle_unittest.cc",
724     "test/run_all_unittests.cc",
725   ]
726
727   if (is_ios) {
728     # Compile this Mac file on iOS as well.
729     set_sources_assignment_filter([])
730     sources += [ "l10n/l10n_util_mac_unittest.mm" ]
731     set_sources_assignment_filter(sources_assignment_filter)
732   } else {  # !is_ios
733     sources += [
734       "accelerators/accelerator_manager_unittest.cc",
735       "accelerators/menu_label_accelerator_util_linux_unittest.cc",
736       "clipboard/custom_data_helper_unittest.cc",
737       "cocoa/base_view_unittest.mm",
738       "cocoa/cocoa_base_utils_unittest.mm",
739       "cocoa/controls/blue_label_button_unittest.mm",
740       "cocoa/controls/hover_image_menu_button_unittest.mm",
741       "cocoa/controls/hyperlink_button_cell_unittest.mm",
742       "cocoa/controls/hyperlink_text_view_unittest.mm",
743       "cocoa/focus_tracker_unittest.mm",
744       "cocoa/fullscreen_window_manager_unittest.mm",
745       "cocoa/hover_image_button_unittest.mm",
746       "cocoa/menu_controller_unittest.mm",
747       "cocoa/nsgraphics_context_additions_unittest.mm",
748       "cocoa/nsview_additions_unittest.mm",
749       "cocoa/tracking_area_unittest.mm",
750       "dragdrop/os_exchange_data_provider_aurax11_unittest.cc",
751       "models/list_model_unittest.cc",
752       "models/list_selection_model_unittest.cc",
753       "models/tree_node_model_unittest.cc",
754       "test/data/resource.h",
755       "text/bytes_formatting_unittest.cc",
756       "view_prop_unittest.cc",
757       "webui/web_ui_util_unittest.cc",
758       "x/selection_requestor_unittest.cc",
759     ]
760   }
761
762   if (build_ime) {
763     sources += [
764       "ime/candidate_window_unittest.cc",
765       "ime/chromeos/character_composer_unittest.cc",
766       "ime/input_method_base_unittest.cc",
767       "ime/input_method_chromeos_unittest.cc",
768       "ime/remote_input_method_win_unittest.cc",
769       "ime/win/imm32_manager_unittest.cc",
770       "ime/win/tsf_input_scope_unittest.cc",
771     ]
772     if (use_x11) {
773       sources += [ "ime/composition_text_util_pango_unittest.cc" ]
774     }
775     if (!use_x11 && is_chromeos) {
776       # These were already removed in the non-chromeos case.
777       sources -= [
778         "ime/chromeos/character_composer_unittest.cc",
779         "ime/input_method_chromeos_unittest.cc",
780       ]
781     }
782   }
783
784   deps = [
785     "//base",
786     "//base/allocator",
787     "//base/test:test_support",
788     "//net",
789     "//skia",
790     "//testing/gmock",
791     "//testing/gtest",
792     "//third_party/icu",
793     "//ui/base",
794     "//ui/base:test_support",
795     "//ui/events:events_base",
796     "//ui/events:test_support",
797     "//ui/gfx:test_support",
798     "//ui/resources",
799     "//ui/resources:ui_test_pak",
800     "//ui/strings",
801     "//url",
802   ]
803
804   if (is_ios) {
805     # TODO(GYP) lots of iOS-only steps for ui_unittests
806   }
807
808   if (is_win) {
809     sources += [
810       "dragdrop/os_exchange_data_win_unittest.cc",
811       "win/hwnd_subclass_unittest.cc",
812       "win/open_file_name_win_unittest.cc",
813     ]
814
815     ldflags = [
816       "/DELAYLOAD:d2d1.dll",
817       "/DELAYLOAD:d3d10_1.dll",
818     ]
819     libs = [
820       "d2d1.lib",
821       "d3d10_1.lib",
822       "imm32.lib",
823       "oleacc.lib",
824     ]
825
826     # TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
827     cflags = [ "/wd4267" ]
828   }
829
830   if (is_android) {
831     deps += [
832       #"testing/android/native_test.gyp:native_test_native_code"  TODO(GYP)
833     ]
834   }
835
836   if (use_pango) {
837     configs += [
838       "//build/config/linux:pangocairo"
839     ]
840   }
841
842   if (use_x11) {
843     sources += [
844       "cursor/cursor_loader_x11_unittest.cc"
845     ]
846
847     configs += [
848       "//build/config/linux:x11"
849     ]
850
851     deps += [
852       "//ui/events/platform/x11",
853       "//ui/gfx/x",
854     ]
855
856     datadeps = [
857       "//tools/xdisplaycheck"
858     ]
859   }
860
861   if (!is_win || !use_aura) {
862     sources -= [
863       "view_prop_unittest.cc"
864     ]
865   }
866
867   if (is_mac) {
868     deps += [
869       "//third_party/mozilla",
870       #'ui_unittests_bundle',  TODO(GYP)
871     ]
872   }
873
874   if (use_aura || toolkit_views) {
875     sources += [
876       "dragdrop/os_exchange_data_unittest.cc"
877     ]
878
879     deps += [
880       "//ui/events",
881       "//ui/events/platform",
882     ]
883   }
884
885   if (is_chromeos) {
886     sources += [
887       "../chromeos/network/network_state_notifier_unittest.cc",
888       "../chromeos/touch_exploration_controller_unittest.cc",
889     ]
890     sources -= [
891       "dragdrop/os_exchange_data_provider_aurax11_unittest.cc",
892       "x/selection_requestor_unittest.cc",
893     ]
894     deps += [
895       "//chromeos",
896       "//ui/aura:test_support",
897       "//ui/chromeos/resources",
898       "//ui/chromeos/strings",
899       "//ui/chromeos:ui_chromeos",
900       "//ui/events:gesture_detection",
901       "//ui/message_center:message_center",
902     ]
903   }
904 }
905 }
906 # TODO(GYP) Mac (ui_unittest_bundle) and Android (ui_unittests_apk).