MacViews: Add Layers to NativeWidgetMac
[chromium-blink-merge.git] / ui / views / BUILD.gn
blob0b9d7ef3c58a859ee26460eaa687f57f85cd3bee
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/features.gni")
6 import("//build/config/ui.gni")
8 gypi_values = exec_script("//build/gypi_to_gn.py",
9                           [ rebase_path("views.gyp") ],
10                           "scope",
11                           [ "views.gyp" ])
13 component("views") {
14   sources = gypi_values.views_sources
16   defines = [ "VIEWS_IMPLEMENTATION" ]
18   deps = [
19     "//base:i18n",
20     "//base/third_party/dynamic_annotations",
21     "//skia",
22     "//third_party/icu",
23     "//ui/accessibility",
24     "//ui/aura",
25     "//ui/native_theme",
26     "//ui/resources",
27     "//ui/strings",
28     "//ui/wm",
29     "//url",
30   ]
32   public_deps = [
33     "//base",
34     "//ui/accessibility:ax_gen",
35     "//ui/base",
36     "//ui/compositor",
37     "//ui/events",
38     "//ui/events:events_base",
39     "//ui/events/platform",
40     "//ui/gfx",
41     "//ui/gfx/geometry",
42   ]
44   if (use_x11 && !is_chromeos) {
45     deps += [ "//ui/display/util" ]
46   }
47   if (is_linux && !is_chromeos) {
48     sources -= [ "window/window_button_order_provider.cc" ]
49     deps += [ "//ui/shell_dialogs" ]
50   } else {
51     sources -= [
52       "linux_ui/linux_ui.h",
53       "linux_ui/linux_ui.cc",
54       "linux_ui/window_button_order_observer.h",
55       "linux_ui/window_button_order_provider.cc",
56     ]
57   }
59   if (is_chromeos) {
60     sources -= [
61       "linux_ui/status_icon_linux.h",
62       "linux_ui/status_icon_linux.cc",
63     ]
64   }
66   if (is_win) {
67     sources += gypi_values.views_win_sources
68     cflags = [ "/wd4267" ]  # TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
69     libs = [
70       "/imm32.lib",
71       "oleacc.lib",
72     ]
73     ldflags = [ "/DELAYLOAD:user32.dll" ]
74     deps += [
75       "//third_party/iaccessible2",
76       "//third_party/wtl",
77     ]
78   }
80   if (use_ozone) {
81     deps += [ "//ui/ozone" ]
82   }
83   if (use_x11) {
84     configs += [
85       "//build/config/linux:x11",
86       "//build/config/linux:xrandr",
87     ]
88     deps += [
89       "//ui/events/devices",
90       "//ui/events/platform/x11",
91       "//ui/gfx/x",
92     ]
93   }
95   if (use_aura) {
96     sources += gypi_values.views_aura_sources
97     if (!is_chromeos) {
98       sources += gypi_values.views_desktop_aura_sources
99       if (use_x11) {
100         sources += gypi_values.views_desktop_aura_x11_sources
101       } else if (is_win) {
102         sources += gypi_values.views_desktop_aura_win_sources
103       } else if (use_ozone) {
104         sources += gypi_values.views_desktop_aura_ozone_sources
105       }
106     }
107   }
109   if (is_mac) {
110     deps += [ "//ui/accelerated_widget_mac" ]
111   }
114 static_library("test_support") {
115   testonly = true
116   sources = gypi_values.views_test_support_sources
118   public_deps = [
119     ":views",
120   ]
121   deps = [
122     "//base",
123     "//ipc:test_support",
124     "//skia",
125     "//testing/gtest",
126     "//ui/aura",
127     "//ui/base",
128     "//ui/compositor",
129     "//ui/compositor:test_support",
130     "//ui/events",
131     "//ui/events:events_base",
132     "//ui/events:test_support",
133     "//ui/events/platform",
134     "//ui/gfx",
135     "//ui/gfx/geometry",
136     "//ui/wm",
137   ]
139   if (is_chromeos || !use_x11) {
140     sources -= [
141       "test/ui_controls_factory_desktop_aurax11.cc",
142       "test/ui_controls_factory_desktop_aurax11.h",
143     ]
144   }
145   if (use_aura) {
146     sources += gypi_values.views_test_support_aura_sources
147     deps += [ "//ui/aura:test_support" ]
148   }
149   if (use_x11) {
150     deps += [ "//ui/gfx/x" ]
151   }
152   if (use_ozone) {
153     sources -= [ "test/x11_property_change_waiter.cc" ]
154   }
157 test("views_unittests") {
158   sources = gypi_values.views_unittests_sources
160   deps = [
161     ":test_support",
162     "//base",
163     "//base:i18n",
164     "//base/allocator",
165     "//base/test:test_support",
166     "//skia",
167     "//testing/gtest",
168     "//third_party/icu",
169     "//ui/accessibility",
170     "//ui/aura",
171     "//ui/base",
172     "//ui/base:test_support",
173     "//ui/compositor:test_support",
174     "//ui/events:test_support",
175     "//ui/events:events_base",
176     "//ui/events/platform",
177     "//ui/gfx",
178     "//ui/gfx/geometry",
179     "//ui/gl",
180     "//ui/resources",
181     "//ui/strings",
182     "//ui/wm",
183     "//url",
184   ]
186   if (is_chromeos) {
187     sources -= [ "ime/input_method_bridge_unittest.cc" ]
188   }
190   if (is_win) {
191     deps += [
192       "//third_party/iaccessible2",
193       "//third_party/wtl",
194     ]
195     libs = [
196       "imm32.lib",
197       "oleacc.lib",
198       "comctl32.lib",
199     ]
201     # TOOD(GYP)
202     #'msvs_settings': {
203     #  'VCManifestTool': {
204     #    'AdditionalManifestFiles': [
205     #      '$(ProjectDir)\\test\\views_unittest.manifest',
206     #    ],
207     #  },
208     #},
209   }
211   if (use_x11) {
212     configs += [
213       "//build/config/linux:x11",
214       "//build/config/linux:xext",
215     ]
216     deps += [
217       "//ui/events/devices",
218       "//ui/events/platform/x11",
219       "//ui/gfx/x",
220     ]
221   }
223   if (use_aura) {
224     sources += gypi_values.views_unittests_aura_sources
225     deps += [ "//ui/aura:test_support" ]
226     if (!is_chromeos) {
227       sources += gypi_values.views_unittests_desktop_aura_sources
228     }
229   }
230   if (use_x11) {
231     deps += [
232       "//ui/events/platform/x11",
233       "//ui/gfx/x",
234     ]
235   }
237   if (is_mac) {
238     # views_unittests not yet compiling on Mac. http://crbug.com/378134
239     sources -= [
240       "bubble/bubble_window_targeter_unittest.cc",
241       "controls/button/custom_button_unittest.cc",
242       "controls/button/menu_button_unittest.cc",
243       "controls/native/native_view_host_unittest.cc",
244       "controls/menu/menu_controller_unittest.cc",
245       "ime/input_method_bridge_unittest.cc",
246       "focus/focus_manager_unittest.cc",
247       "widget/window_reorderer_unittest.cc",
248       "widget/widget_unittest.cc",
249     ]
250   }
253 if (is_mac) {
254   test("macviews_interactive_ui_tests") {
255     sources = [
256       "cocoa/bridged_native_widget_interactive_uitest.mm",
257       "run_all_unittests.cc",
258       "widget/native_widget_mac_interactive_uitest.mm",
259     ]
260     deps = [
261       ":test_support",
262       ":views",
263       "//base",
264       "//base/test:test_support",
265       "//skia",
266       "//testing/gtest",
267       "//ui/aura",
268       "//ui/compositor",
269       "//ui/resources",
270       "//ui/resources:ui_test_pak",
271       "//ui/strings",
272       "//ui/wm",
273     ]
274   }