Linux: Depend on liberation-fonts package for RPMs.
[chromium-blink-merge.git] / ui / base / BUILD.gn
blobb6420c673584aaca7f4da777228d51415794ced1
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.
5 import("//build/config/compiler/compiler.gni")
6 import("//build/config/sanitizers/sanitizers.gni")
7 import("//build/config/ui.gni")
8 import("//testing/test.gni")
10 if (is_android) {
11   import("//build/config/android/config.gni")
12   import("//build/config/android/rules.gni")
15 build_ime = !is_ios
17 component("base") {
18   output_name = "ui_base"
20   sources = [
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/ui_base_jni_registrar.cc",
27     "android/ui_base_jni_registrar.h",
28     "clipboard/clipboard_android.cc",
29     "clipboard/clipboard_android.h",
30     "clipboard/clipboard_mac.h",
31     "clipboard/clipboard_mac.mm",
32     "clipboard/clipboard_types.h",
33     "clipboard/clipboard_util_win.cc",
34     "clipboard/clipboard_util_win.h",
35     "clipboard/clipboard_win.cc",
36     "clipboard/clipboard_win.h",
37     "clipboard/custom_data_helper_linux.cc",
38     "clipboard/custom_data_helper_mac.mm",
39     "cocoa/animation_utils.h",
40     "cocoa/appkit_utils.h",
41     "cocoa/appkit_utils.mm",
42     "cocoa/base_view.h",
43     "cocoa/base_view.mm",
44     "cocoa/cocoa_base_utils.h",
45     "cocoa/cocoa_base_utils.mm",
46     "cocoa/command_dispatcher.h",
47     "cocoa/command_dispatcher.mm",
48     "cocoa/constrained_window/constrained_window_animation.h",
49     "cocoa/constrained_window/constrained_window_animation.mm",
50     "cocoa/controls/blue_label_button.h",
51     "cocoa/controls/blue_label_button.mm",
52     "cocoa/controls/hover_image_menu_button.h",
53     "cocoa/controls/hover_image_menu_button.mm",
54     "cocoa/controls/hover_image_menu_button_cell.h",
55     "cocoa/controls/hover_image_menu_button_cell.mm",
56     "cocoa/controls/hyperlink_button_cell.h",
57     "cocoa/controls/hyperlink_button_cell.mm",
58     "cocoa/controls/hyperlink_text_view.h",
59     "cocoa/controls/hyperlink_text_view.mm",
60     "cocoa/find_pasteboard.h",
61     "cocoa/find_pasteboard.mm",
62     "cocoa/flipped_view.h",
63     "cocoa/flipped_view.mm",
64     "cocoa/focus_tracker.h",
65     "cocoa/focus_tracker.mm",
66     "cocoa/focus_window_set.h",
67     "cocoa/focus_window_set.mm",
68     "cocoa/fullscreen_window_manager.h",
69     "cocoa/fullscreen_window_manager.mm",
70     "cocoa/hover_button.h",
71     "cocoa/hover_button.mm",
72     "cocoa/hover_image_button.h",
73     "cocoa/hover_image_button.mm",
74     "cocoa/menu_controller.h",
75     "cocoa/menu_controller.mm",
76     "cocoa/nib_loading.h",
77     "cocoa/nib_loading.mm",
78     "cocoa/nsgraphics_context_additions.h",
79     "cocoa/nsgraphics_context_additions.mm",
80     "cocoa/nsview_additions.h",
81     "cocoa/nsview_additions.mm",
82     "cocoa/remote_layer_api.h",
83     "cocoa/remote_layer_api.mm",
84     "cocoa/three_part_image.h",
85     "cocoa/three_part_image.mm",
86     "cocoa/tool_tip_base_view.h",
87     "cocoa/tool_tip_base_view.mm",
88     "cocoa/tracking_area.h",
89     "cocoa/tracking_area.mm",
90     "cocoa/underlay_opengl_hosting_window.h",
91     "cocoa/underlay_opengl_hosting_window.mm",
92     "cocoa/user_interface_item_command_handler.h",
93     "cocoa/view_description.h",
94     "cocoa/view_description.mm",
95     "cocoa/window_size_constants.h",
96     "cocoa/window_size_constants.mm",
97     "cursor/cursor.cc",
98     "cursor/cursor.h",
99     "cursor/cursor_android.cc",
100     "cursor/cursor_loader.h",
101     "cursor/cursor_win.cc",
102     "default_theme_provider_mac.mm",
103     "device_form_factor.h",
104     "device_form_factor_android.cc",
105     "device_form_factor_android.h",
106     "device_form_factor_desktop.cc",
107     "device_form_factor_ios.mm",
108     "dragdrop/drag_drop_types.h",
109     "dragdrop/drag_drop_types_win.cc",
110     "dragdrop/drag_source_win.cc",
111     "dragdrop/drag_source_win.h",
112     "dragdrop/drag_utils_aura.cc",
113     "dragdrop/drag_utils_mac.mm",
114     "dragdrop/drag_utils_win.cc",
115     "dragdrop/drop_target_event.cc",
116     "dragdrop/drop_target_event.h",
117     "dragdrop/drop_target_win.cc",
118     "dragdrop/drop_target_win.h",
119     "dragdrop/os_exchange_data.cc",
120     "dragdrop/os_exchange_data.h",
121     "dragdrop/os_exchange_data_provider_mac.h",
122     "dragdrop/os_exchange_data_provider_mac.mm",
123     "dragdrop/os_exchange_data_provider_win.cc",
124     "dragdrop/os_exchange_data_provider_win.h",
125     "hit_test.h",
126     "idle/idle.cc",
127     "idle/idle.h",
128     "idle/idle_chromeos.cc",
129     "idle/idle_linux.cc",
130     "idle/idle_mac.mm",
131     "idle/idle_win.cc",
132     "ios/cru_context_menu_controller.h",
133     "ios/cru_context_menu_controller.mm",
134     "ios/cru_context_menu_holder.h",
135     "ios/cru_context_menu_holder.mm",
136     "l10n/formatter.cc",
137     "l10n/formatter.h",
138     "l10n/l10n_font_util.cc",
139     "l10n/l10n_font_util.h",
140     "l10n/l10n_util.cc",
141     "l10n/l10n_util.h",
142     "l10n/l10n_util_android.cc",
143     "l10n/l10n_util_android.h",
144     "l10n/l10n_util_collator.h",
145     "l10n/l10n_util_mac.h",
146     "l10n/l10n_util_mac.mm",
147     "l10n/l10n_util_posix.cc",
148     "l10n/l10n_util_win.cc",
149     "l10n/l10n_util_win.h",
150     "l10n/time_format.cc",
151     "l10n/time_format.h",
152     "layout.cc",
153     "layout.h",
154     "layout_mac.mm",
155     "models/button_menu_item_model.cc",
156     "models/button_menu_item_model.h",
157     "models/combobox_model.cc",
158     "models/combobox_model.h",
159     "models/combobox_model_observer.h",
160     "models/dialog_model.cc",
161     "models/dialog_model.h",
162     "models/list_model.h",
163     "models/list_model_observer.h",
164     "models/list_selection_model.cc",
165     "models/list_selection_model.h",
166     "models/menu_model.cc",
167     "models/menu_model.h",
168     "models/menu_model_delegate.h",
169     "models/menu_separator_types.h",
170     "models/simple_combobox_model.cc",
171     "models/simple_combobox_model.h",
172     "models/simple_menu_model.cc",
173     "models/simple_menu_model.h",
174     "models/table_model.cc",
175     "models/table_model.h",
176     "models/table_model_observer.h",
177     "models/tree_model.cc",
178     "models/tree_model.h",
179     "models/tree_node_iterator.h",
180     "models/tree_node_model.h",
181     "nine_image_painter_factory.cc",
182     "nine_image_painter_factory.h",
183     "page_transition_types.cc",
184     "page_transition_types.h",
185     "resource/data_pack.cc",
186     "resource/data_pack.h",
187     "resource/material_design/material_design_controller.cc",
188     "resource/material_design/material_design_controller.h",
189     "resource/resource_bundle.cc",
190     "resource/resource_bundle.h",
191     "resource/resource_bundle_android.cc",
192     "resource/resource_bundle_auralinux.cc",
193     "resource/resource_bundle_ios.mm",
194     "resource/resource_bundle_mac.mm",
195     "resource/resource_bundle_win.cc",
196     "resource/resource_bundle_win.h",
197     "resource/resource_data_dll_win.cc",
198     "resource/resource_data_dll_win.h",
199     "resource/resource_handle.h",
200     "template_expressions.cc",
201     "template_expressions.h",
202     "theme_provider.cc",
203     "theme_provider.h",
204     "touch/selection_bound.cc",
205     "touch/selection_bound.h",
206     "touch/touch_device.h",
207     "touch/touch_editing_controller.cc",
208     "touch/touch_editing_controller.h",
209     "touch/touch_enabled.cc",
210     "touch/touch_enabled.h",
211     "ui_base_export.h",
212     "ui_base_exports.cc",
213     "ui_base_paths.cc",
214     "ui_base_paths.h",
215     "ui_base_switches.cc",
216     "ui_base_switches.h",
217     "ui_base_switches_util.cc",
218     "ui_base_switches_util.h",
219     "ui_base_types.cc",
220     "ui_base_types.h",
221     "user_activity/user_activity_detector.cc",
222     "user_activity/user_activity_detector.h",
223     "user_activity/user_activity_observer.h",
224     "view_prop.cc",
225     "view_prop.h",
226     "webui/jstemplate_builder.cc",
227     "webui/jstemplate_builder.h",
228     "webui/web_ui_util.cc",
229     "webui/web_ui_util.h",
230     "win/accessibility_ids_win.h",
231     "win/accessibility_misc_utils.cc",
232     "win/accessibility_misc_utils.h",
233     "win/atl_module.h",
234     "win/foreground_helper.cc",
235     "win/foreground_helper.h",
236     "win/hidden_window.cc",
237     "win/hidden_window.h",
238     "win/hwnd_subclass.cc",
239     "win/hwnd_subclass.h",
240     "win/internal_constants.cc",
241     "win/internal_constants.h",
242     "win/lock_state.cc",
243     "win/lock_state.h",
244     "win/message_box_win.cc",
245     "win/message_box_win.h",
246     "win/mouse_wheel_util.cc",
247     "win/mouse_wheel_util.h",
248     "win/open_file_name_win.cc",
249     "win/open_file_name_win.h",
250     "win/scoped_ole_initializer.cc",
251     "win/scoped_ole_initializer.h",
252     "win/shell.cc",
253     "win/shell.h",
254     "win/touch_input.cc",
255     "win/touch_input.h",
256     "win/window_event_target.cc",
257     "win/window_event_target.h",
258     "window_open_disposition.cc",
259     "window_open_disposition.h",
260     "work_area_watcher_observer.h",
261   ]
263   if (!is_ios) {
264     sources += [
265       "accelerators/accelerator.cc",
266       "accelerators/accelerator.h",
267       "accelerators/accelerator_history.cc",
268       "accelerators/accelerator_history.h",
269       "accelerators/accelerator_manager.cc",
270       "accelerators/accelerator_manager.h",
271       "base_window.cc",
272       "base_window.h",
273       "clipboard/clipboard.cc",
274       "clipboard/clipboard.h",
275       "clipboard/clipboard_constants.cc",
276       "clipboard/custom_data_helper.cc",
277       "clipboard/custom_data_helper.h",
278       "clipboard/scoped_clipboard_writer.cc",
279       "clipboard/scoped_clipboard_writer.h",
280       "cursor/cursor_util.cc",
281       "cursor/cursor_util.h",
282       "cursor/cursors_aura.cc",
283       "cursor/cursors_aura.h",
284       "cursor/image_cursors.cc",
285       "cursor/image_cursors.h",
286       "default_theme_provider.cc",
287       "default_theme_provider.h",
288       "dragdrop/cocoa_dnd_util.h",
289       "dragdrop/cocoa_dnd_util.mm",
290       "dragdrop/drag_utils.cc",
291       "dragdrop/drag_utils.h",
292       "dragdrop/file_info.cc",
293       "dragdrop/file_info.h",
294       "text/bytes_formatting.cc",
295       "text/bytes_formatting.h",
296     ]
297   }
299   if (is_win) {
300     sources += [ "touch/touch_device_win.cc" ]
301   } else if (is_android) {
302     sources += [ "touch/touch_device_android.cc" ]
303   } else if (is_ios) {
304     sources += [ "touch/touch_device_ios.cc" ]
305   } else if (is_linux) {
306     sources += [ "touch/touch_device_linux.cc" ]
307   } else {
308     # Empty implementation for all other cases.
309     sources += [ "touch/touch_device.cc" ]
310   }
312   # TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
313   configs += [ "//build/config/compiler:no_size_t_to_int_warning" ]
315   defines = [ "UI_BASE_IMPLEMENTATION" ]
317   public_deps = [
318     "//base",
319     "//skia",
320     "//ui/events/platform",
321     "//ui/events:events_base",
322     "//ui/gfx",
323     "//ui/gfx/geometry",
324   ]
325   deps = [
326     "//base/third_party/dynamic_annotations",
327     "//base:base_static",
328     "//base:i18n",
329     "//net",
330     "//third_party/icu",
331     "//ui/events",
332     "//ui/events/devices",
333     "//ui/resources",
334     "//ui/strings",
335     "//url",
336   ]
338   if (is_ios) {
339     set_sources_assignment_filter([])
340     sources += [
341       "l10n/l10n_util_mac.h",
342       "l10n/l10n_util_mac.mm",
343     ]
344     set_sources_assignment_filter(sources_assignment_filter)
345   }
347   if (toolkit_views) {
348     deps += [ "//ui/events" ]
349   }
351   if (use_x11 && use_aura) {
352     sources += [
353       "x/selection_owner.cc",
354       "x/selection_owner.h",
355       "x/selection_requestor.cc",
356       "x/selection_requestor.h",
357       "x/selection_utils.cc",
358       "x/selection_utils.h",
359     ]
360   }
362   if (use_aura) {
363     deps += [ "//ui/events" ]
364   } else {
365     sources -= [
366       "cursor/cursor.cc",
367       "cursor/cursor.h",
368       "dragdrop/drag_utils_aura.cc",
369     ]
370   }
371   if (use_x11) {
372     sources += [
373       "x/x11_foreign_window_manager.cc",
374       "x/x11_foreign_window_manager.h",
375       "x/x11_menu_list.cc",
376       "x/x11_menu_list.h",
377       "x/x11_util.cc",
378       "x/x11_util.h",
379       "x/x11_util_internal.h",
380     ]
381     if (!is_chromeos) {
382       sources += [
383         "idle/idle_query_x11.cc",
384         "idle/idle_query_x11.h",
385         "idle/screensaver_window_finder_x11.cc",
386         "idle/screensaver_window_finder_x11.h",
387       ]
388       configs += [ "//build/config/linux:xscrnsaver" ]
389     }
390     deps += [ "//ui/gfx/x" ]
391   }
393   if (!use_aura || !is_linux) {
394     sources -= [ "resource/resource_bundle_auralinux.cc" ]
395   }
397   if (use_aura && is_win) {
398     sources -= [ "dragdrop/drag_utils_aura.cc" ]
399   }
401   if (is_linux) {
402     configs += [ "//build/config/linux:fontconfig" ]
403   }
405   if (use_glib) {
406     configs += [ "//build/config/linux:glib" ]
407   }
409   if ((is_linux && !is_chromeos) || is_chromeos) {
410     if (!toolkit_views && !use_aura) {
411       sources -= [
412         "dragdrop/drag_utils.cc",
413         "dragdrop/drag_utils.h",
414       ]
415     }
416   }
418   if (is_chromeos) {
419     deps += [ "//chromeos" ]
420     sources -= [ "idle/idle_linux.cc" ]
421   }
423   if (is_chromeos || (use_aura && ((is_linux && !use_x11) || is_android))) {
424     sources += [
425       "dragdrop/os_exchange_data_provider_aura.cc",
426       "dragdrop/os_exchange_data_provider_aura.h",
427     ]
428   }
430   libs = []
431   if (is_win) {
432     sources += [
433       "cursor/cursor_loader_win.cc",
434       "cursor/cursor_loader_win.h",
435     ]
436     deps += [ "//third_party/wtl" ]
437     cflags = [ "/wd4324" ]  # Structure was padded due to __declspec(align()), which is
438                             # uninteresting.
440     ldflags = [
441       "/DELAYLOAD:d2d1.dll",
442       "/DELAYLOAD:d3d10_1.dll",
443       "/DELAYLOAD:dwmapi.dll",
444     ]
445     libs += [
446       "d2d1.lib",
447       "d3d10_1.lib",
448       "dwmapi.lib",
449       "d2d1.lib",
450       "dwmapi.lib",
451       "oleacc.lib",
452     ]
453   } else {
454     if (!use_aura) {
455       sources -= [
456         "view_prop.cc",
457         "view_prop.h",
458       ]
459     }
460   }
462   if (is_mac) {
463     deps += [ "//third_party/mozilla" ]
465     sources -= [
466       "cursor/image_cursors.cc",
467       "cursor/image_cursors.h",
468       "dragdrop/drag_utils.cc",
469       "dragdrop/drag_utils.h",
470     ]
472     libs += [
473       "Accelerate.framework",
474       "AudioUnit.framework",
475       "CoreVideo.framework",
476     ]
477   }
479   if (use_x11) {
480     #'all_dependent_settings': {
481     #'ldflags': [
482     #'-L<(PRODUCT_DIR)',
483     #],
484     #},
485     configs += [ "//build/config/linux:x11" ]
486   }
488   if (use_aura) {
489     if (use_x11) {
490       sources += [
491         "cursor/cursor_loader_x11.cc",
492         "cursor/cursor_loader_x11.h",
493         "cursor/cursor_x11.cc",
494       ]
495       if (!is_chromeos) {
496         # These Aura X11 files aren't used on ChromeOS.
497         sources += [
498           "dragdrop/os_exchange_data_provider_aurax11.cc",
499           "dragdrop/os_exchange_data_provider_aurax11.h",
500         ]
501       }
502     }
503     if (is_android) {
504       sources += [ "cursor/cursor_loader_android.cc" ]
505     }
506   }
507   if (use_ozone) {
508     sources += [
509       "cursor/cursor_loader_ozone.cc",
510       "cursor/cursor_loader_ozone.h",
511       "cursor/cursor_ozone.cc",
512       "cursor/ozone/bitmap_cursor_factory_ozone.cc",
513       "cursor/ozone/bitmap_cursor_factory_ozone.h",
514     ]
516     deps += [
517       "//ui/events/ozone:events_ozone_layout",
518       "//ui/ozone:ozone_base",
519     ]
520   }
522   if (!toolkit_views && !use_aura) {
523     sources -= [
524       "dragdrop/drag_drop_types.h",
525       "dragdrop/drop_target_event.cc",
526       "dragdrop/drop_target_event.h",
527       "dragdrop/os_exchange_data.cc",
528       "dragdrop/os_exchange_data.h",
529       "nine_image_painter_factory.cc",
530       "nine_image_painter_factory.h",
531     ]
532   }
534   if (is_android) {
535     deps += [
536       ":ui_base_jni_headers",
537       "//ui/android:ui_java",
538     ]
540     libs += [ "jnigraphics" ]
541   }
543   if (is_android && !use_aura) {
544     sources -= [
545       "cursor/cursor_android.cc",
546       "cursor/image_cursors.cc",
547       "cursor/image_cursors.h",
548       "default_theme_provider.cc",
549       "dragdrop/drag_utils.cc",
550       "dragdrop/drag_utils.h",
551       "l10n/l10n_font_util.cc",
552       "models/button_menu_item_model.cc",
553       "models/dialog_model.cc",
554       "theme_provider.cc",
555       "touch/touch_editing_controller.cc",
556       "ui_base_types.cc",
557     ]
558   }
560   # Aura clipboard.
561   if (use_aura) {
562     if (use_x11) {
563       sources += [ "clipboard/clipboard_aurax11.cc" ]
564     } else if (!is_win && !is_android) {
565       # This file is used for all non-X11, non-Windows, non-Android aura Builds.
566       sources += [ "clipboard/clipboard_aura.cc" ]
567     }
568   }
570   if (is_android || is_ios) {
571     sources -= [
572       "device_form_factor_desktop.cc",
573       "idle/idle.cc",
574       "idle/idle.h",
575     ]
576   }
579 source_set("test_support") {
580   testonly = true
581   sources = [
582     "test/material_design_controller_test_api.cc",
583     "test/material_design_controller_test_api.h",
584     "test/ui_controls.h",
585     "test/ui_controls_aura.cc",
586     "test/ui_controls_internal_win.cc",
587     "test/ui_controls_internal_win.h",
588     "test/ui_controls_mac.mm",
589     "test/ui_controls_win.cc",
590   ]
592   if (!is_ios) {
593     sources += [
594       "test/nswindow_fullscreen_notification_waiter.h",
595       "test/nswindow_fullscreen_notification_waiter.mm",
596       "test/scoped_fake_nswindow_focus.h",
597       "test/scoped_fake_nswindow_focus.mm",
598       "test/scoped_fake_nswindow_fullscreen.h",
599       "test/scoped_fake_nswindow_fullscreen.mm",
600       "test/test_clipboard.cc",
601       "test/test_clipboard.h",
602       "test/windowed_nsnotification_observer.h",
603       "test/windowed_nsnotification_observer.mm",
604     ]
605   }
607   public_deps = [
608     ":base",
609   ]
610   deps = [
611     "//base",
612     "//skia",
613     "//testing/gtest",
614     "//ui/events:events_base",
615     "//ui/gfx",
616     "//ui/gfx/geometry",
617   ]
619   if (build_ime) {
620     sources += [
621       "ime/dummy_input_method.cc",
622       "ime/dummy_input_method.h",
623       "ime/dummy_text_input_client.cc",
624       "ime/dummy_text_input_client.h",
625     ]
627     deps += [ "//ui/base/ime" ]
628   }
630   if (!use_aura) {
631     sources -= [ "test/ui_controls_aura.cc" ]
632   } else if (is_win) {
633     sources -= [ "test/ui_controls_win.cc" ]
634   }
637 if (is_android) {
638   generate_jni("ui_base_jni_headers") {
639     sources = [
640       "../android/java/src/org/chromium/ui/base/Clipboard.java",
641       "../android/java/src/org/chromium/ui/base/DeviceFormFactor.java",
642       "../android/java/src/org/chromium/ui/base/LocalizationUtils.java",
643       "../android/java/src/org/chromium/ui/base/ResourceBundle.java",
644       "../android/java/src/org/chromium/ui/base/SelectFileDialog.java",
645       "../android/java/src/org/chromium/ui/base/TouchDevice.java",
646     ]
647     jni_package = "base"
648   }
652 # TODO(GYP): Delete this after we've converted everything to GN.
653 # The _run targets exist only for compatibility w/ GYP.
654 group("ui_base_unittests_run") {
655   testonly = true
656   deps = [
657     ":ui_base_unittests",
658   ]
661 # GYP version: ui/base/ui_base_tests.gyp:ui_base_unittests
662 test("ui_base_unittests") {
663   sources = [
664     "ios/cru_context_menu_controller_unittest.mm",
665     "l10n/l10n_util_mac_unittest.mm",
666     "l10n/l10n_util_unittest.cc",
667     "l10n/l10n_util_win_unittest.cc",
668     "l10n/time_format_unittest.cc",
669     "layout_unittest.cc",
670     "models/tree_node_iterator_unittest.cc",
671     "resource/data_pack_literal.cc",
672     "resource/data_pack_unittest.cc",
673     "resource/material_design/material_design_controller_unittest.cc",
674     "resource/resource_bundle_unittest.cc",
675     "template_expressions_unittest.cc",
676     "test/run_all_unittests.cc",
677     "user_activity/user_activity_detector_unittest.cc",
678   ]
679   if (!is_ios) {
680     sources += [
681       "test/scoped_fake_nswindow_fullscreen_unittest.mm",
682       "test/test_clipboard_unittest.cc",
683     ]
684   }
686   data = []
687   data_deps = []
689   if (is_android) {
690     sources -= [ "user_activity/user_activity_detector_unittest.cc" ]
691   }
693   if (is_ios) {
694     # Compile this Mac file on iOS as well.
695     set_sources_assignment_filter([])
696     sources += [ "l10n/l10n_util_mac_unittest.mm" ]
697     set_sources_assignment_filter(sources_assignment_filter)
698   } else {  # !is_ios
699     sources += [
700       "accelerators/accelerator_manager_unittest.cc",
701       "accelerators/menu_label_accelerator_util_linux_unittest.cc",
702       "clipboard/custom_data_helper_unittest.cc",
703       "cocoa/base_view_unittest.mm",
704       "cocoa/cocoa_base_utils_unittest.mm",
705       "cocoa/constrained_window/constrained_window_animation_unittest.mm",
706       "cocoa/controls/blue_label_button_unittest.mm",
707       "cocoa/controls/hover_image_menu_button_unittest.mm",
708       "cocoa/controls/hyperlink_button_cell_unittest.mm",
709       "cocoa/controls/hyperlink_text_view_unittest.mm",
710       "cocoa/focus_tracker_unittest.mm",
711       "cocoa/fullscreen_window_manager_unittest.mm",
712       "cocoa/hover_image_button_unittest.mm",
713       "cocoa/menu_controller_unittest.mm",
714       "cocoa/nsgraphics_context_additions_unittest.mm",
715       "cocoa/nsview_additions_unittest.mm",
716       "cocoa/three_part_image_unittest.mm",
717       "cocoa/tracking_area_unittest.mm",
718       "models/list_model_unittest.cc",
719       "models/list_selection_model_unittest.cc",
720       "models/tree_node_model_unittest.cc",
721       "test/data/resource.h",
722       "text/bytes_formatting_unittest.cc",
723       "touch/selection_bound_unittest.cc",
724       "webui/web_ui_util_unittest.cc",
725     ]
726   }
728   if (build_ime) {
729     sources += [
730       "ime/candidate_window_unittest.cc",
731       "ime/chromeos/character_composer_unittest.cc",
732       "ime/chromeos/composition_text_chromeos_unittest.cc",
733       "ime/input_method_base_unittest.cc",
734       "ime/input_method_chromeos_unittest.cc",
735       "ime/remote_input_method_win_unittest.cc",
736       "ime/win/imm32_manager_unittest.cc",
737       "ime/win/tsf_input_scope_unittest.cc",
738     ]
739     if (is_linux && use_aura && !is_chromeos) {
740       sources += [ "ime/input_method_auralinux_unittest.cc" ]
741     }
742     if (use_x11) {
743       sources += [ "ime/composition_text_util_pango_unittest.cc" ]
744     }
745     if (!use_x11 && is_chromeos) {
746       # These were already removed in the non-chromeos case.
747       sources -= [ "ime/input_method_chromeos_unittest.cc" ]
748     }
749   }
751   # TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
752   configs += [ "//build/config/compiler:no_size_t_to_int_warning" ]
754   deps = [
755     "//base",
756     "//base/allocator",
757     "//base/test:test_support",
758     "//net",
759     "//skia",
760     "//testing/gmock",
761     "//testing/gtest",
762     "//third_party/icu",
763     "//ui/base",
764     "//ui/base:test_support",
765     "//ui/events:events_base",
766     "//ui/events:test_support",
767     "//ui/gfx:test_support",
768     "//ui/resources",
769     "//ui/resources:ui_test_pak",
770     "//ui/strings",
771     "//url",
772   ]
774   if (is_ios) {
775     # TODO(GYP) lots of iOS-only steps for ui_base_unittests
776   }
778   if (build_ime) {
779     deps += [ "//ui/base/ime" ]
780   }
782   if (is_win) {
783     sources += [
784       "dragdrop/os_exchange_data_win_unittest.cc",
785       "win/hwnd_subclass_unittest.cc",
786       "win/open_file_name_win_unittest.cc",
787     ]
789     ldflags = [
790       "/DELAYLOAD:d2d1.dll",
791       "/DELAYLOAD:d3d10_1.dll",
792     ]
793     libs = [
794       "d2d1.lib",
795       "d3d10_1.lib",
796       "imm32.lib",
797       "oleacc.lib",
798     ]
799   }
801   if (is_win) {
802     sources += [ "view_prop_unittest.cc" ]
803   }
805   if (is_android) {
806     apk_deps = [ "//chrome:resources" ]
807     isolate_file = "ui_base_unittests.isolate"
808   }
810   if (use_pango) {
811     configs += [ "//build/config/linux:pangocairo" ]
812   }
814   if (use_x11) {
815     sources += [ "cursor/cursor_loader_x11_unittest.cc" ]
817     configs += [ "//build/config/linux:x11" ]
819     deps += [
820       "//ui/events/platform/x11",
821       "//ui/gfx/x",
822     ]
824     data_deps += [ "//tools/xdisplaycheck" ]
825   }
827   if (is_mac) {
828     deps += [
829       "//third_party/mozilla",
830       #'ui_base_tests_bundle',  TODO(GYP)
831     ]
832   }
834   if (use_aura || toolkit_views) {
835     sources += [ "dragdrop/os_exchange_data_unittest.cc" ]
837     deps += [
838       "//ui/events",
839       "//ui/events/platform",
840     ]
841   }
843   if (use_x11 && !is_chromeos) {
844     sources += [
845       "dragdrop/os_exchange_data_provider_aurax11_unittest.cc",
846       "x/selection_requestor_unittest.cc",
847     ]
848   }
850   if (is_chromeos) {
851     deps += [
852       "//chromeos",
853       "//ui/events:dom_keycode_converter",
854     ]
855   }
857   if (is_linux || is_mac || is_win) {
858     # TODO(brettw): We should be able to depend on //ui/resources:ui_test_pak
859     # instead of depending directly on the non-test .pak files, but depending
860     # on ui_test_pak seems to have no effect.
861     data += [
862       "test/data/data_pack_unittest/truncated-header.pak",
863       "$root_out_dir/ui_test.pak",  # TODO(brettw): remove this line.
864     ]
865     data_deps += [
866       "//ui/resources:ui_test_pak",  # TODO(brettw): this does nothing.
867       "//third_party/mesa:osmesa",
868     ]
869   }
870   if (is_linux || is_win) {
871     data += [
872       # TODO(brettw): Remove these two lines.
873       "$root_out_dir/ui/en-US.pak",
874       "$root_gen_dir/ui/resources/ui_resources_100_percent.pak",
875     ]
876   }
877   if (is_mac) {
878     data += [ "$root_out_dir/ui_unittests Framework.framework/" ]
880     if (is_asan && symbol_level == 0) {
881       data += [ "$root_out_dir/ui_base_unittests.dSYM/" ]
882     }
883   }
885 # TODO(GYP) Mac (ui_base_tests_bundle)