blob: d2a0d5d718915565df6a72de6e8ac1d94f3b5d18 [file] [log] [blame]
Avi Drissman8ba1bad2022-09-13 19:22:361# Copyright 2015 The Chromium Authors
revemanb195f41d2015-11-19 22:16:482# Use of this source code is governed by a BSD-style license that can be
3# found in the LICENSE file.
4
Jim Shargo6b1b84e2021-06-17 20:30:515import("//build/buildflag_header.gni")
Yuta Hijikata9073b542020-11-25 02:45:416import("//build/config/chromeos/ui_mode.gni")
Hidehiko Abe3375cfe52020-09-29 08:48:267import("//build/config/linux/pkg_config.gni")
brettwb5440a92015-12-03 00:47:128import("//build/config/ui.gni")
Steven Bennetts99f5b692018-11-27 16:31:409import("//chrome/common/features.gni")
revemanb195f41d2015-11-19 22:16:4810import("//testing/test.gni")
Hidehiko Abe3375cfe52020-09-29 08:48:2611import("//ui/base/ui_features.gni")
12
Mitsuru Oshimaf1e1b6b2022-04-12 13:23:5913assert(use_ozone)
Mitsuru Oshima94a83f42022-10-04 07:18:5314assert(is_chromeos_ash)
Mitsuru Oshimaf1e1b6b2022-04-12 13:23:5915
Hidehiko Abe3375cfe52020-09-29 08:48:2616if (use_xkbcommon) {
17 pkg_config("xkbcommon") {
18 packages = [ "xkbcommon" ]
19 }
20}
revemanb195f41d2015-11-19 22:16:4821
Mitsuru Oshima51bf3d5472020-06-17 21:28:3422static_library("exo") {
revemanb195f41d2015-11-19 22:16:4823 sources = [
24 "buffer.cc",
25 "buffer.h",
Eriko Kurimotod02f7052022-11-29 01:23:1526 "client_controlled_accelerators.cc",
27 "client_controlled_accelerators.h",
28 "client_controlled_shell_surface.cc",
29 "client_controlled_shell_surface.h",
30 "custom_window_state_delegate.cc",
31 "custom_window_state_delegate.h",
Daichi Hironofc1a9fb2017-07-19 07:14:5532 "data_device.cc",
33 "data_device.h",
34 "data_device_delegate.h",
Joel Hockey5875dba2020-12-01 22:47:5535 "data_exchange_delegate.h",
Daichi Hironofc1a9fb2017-07-19 07:14:5536 "data_offer.cc",
37 "data_offer.h",
38 "data_offer_delegate.h",
Daichi Hirono29647ac2017-08-15 09:11:5239 "data_offer_observer.h",
Daichi Hironofc1a9fb2017-07-19 07:14:5540 "data_source.cc",
41 "data_source.h",
42 "data_source_delegate.h",
Daichi Hirono19ff5882017-11-30 03:37:3443 "data_source_observer.h",
revemanb195f41d2015-11-19 22:16:4844 "display.cc",
45 "display.h",
Fergus Dalla4293852019-07-26 07:13:4746 "drag_drop_operation.cc",
47 "drag_drop_operation.h",
Eriko Kurimotod02f7052022-11-29 01:23:1548 "extended_drag_offer.cc",
49 "extended_drag_offer.h",
50 "extended_drag_source.cc",
51 "extended_drag_source.h",
Albert Chaulk56e96582019-01-30 19:33:1852 "frame_sink_resource_manager.cc",
53 "frame_sink_resource_manager.h",
Eriko Kurimotod02f7052022-11-29 01:23:1554 "gamepad.cc",
55 "gamepad.h",
56 "gamepad_observer.h",
57 "gaming_seat.cc",
58 "gaming_seat.h",
59 "input_method_surface.cc",
60 "input_method_surface.h",
61 "input_method_surface_manager.h",
[email protected]bfb23cb2019-05-29 21:02:5762 "input_trace.h",
Hidehiko Abe190f69342021-04-02 19:58:4563 "key_state.h",
Eriko Kurimotod02f7052022-11-29 01:23:1564 "keyboard.cc",
65 "keyboard.h",
reveman5cacf70c2015-12-09 22:50:0266 "keyboard_delegate.h",
yhanada5d5b8cb52016-12-10 04:16:0267 "keyboard_device_configuration_delegate.h",
Eriko Kurimotod02f7052022-11-29 01:23:1568 "keyboard_modifiers.h",
yhanadaaaaf52e2017-07-14 09:53:5669 "keyboard_observer.h",
danakjc7afae52017-06-20 21:12:4170 "layer_tree_frame_sink_holder.cc",
71 "layer_tree_frame_sink_holder.h",
Fergus Dall9a9d37c2019-05-16 03:32:2572 "mime_utils.cc",
73 "mime_utils.h",
Eriko Kurimotod02f7052022-11-29 01:23:1574 "notification.cc",
75 "notification.h",
76 "notification_surface.cc",
77 "notification_surface.h",
78 "notification_surface_manager.h",
Nicholas Hollingumbad8a05f62019-12-05 05:56:2179 "permission.cc",
80 "permission.h",
Daniel Nicoara64d43752019-06-10 16:57:1581 "pointer.cc",
82 "pointer.h",
Nicholas Hollingume9a6744f2019-10-03 05:57:2983 "pointer_constraint_delegate.h",
Daniel Nicoara64d43752019-06-10 16:57:1584 "pointer_delegate.h",
Jeffrey Kardatzke51c59ff2022-01-10 20:47:2285 "protected_native_pixmap_query_delegate.h",
Daichi Hirono3d3468d2017-11-20 02:02:3486 "seat.cc",
87 "seat.h",
88 "seat_observer.h",
Nicholas Hollingumda837042022-07-18 23:46:4989 "security_delegate.cc",
90 "security_delegate.h",
revemanb195f41d2015-11-19 22:16:4891 "shared_memory.cc",
92 "shared_memory.h",
Eriko Kurimotod02f7052022-11-29 01:23:1593 "shell_surface.cc",
94 "shell_surface.h",
95 "shell_surface_base.cc",
96 "shell_surface_base.h",
97 "shell_surface_observer.h",
98 "shell_surface_presentation_time_recorder.cc",
99 "shell_surface_presentation_time_recorder.h",
Shawn Galleaa2c085e2018-11-27 18:40:23100 "shell_surface_util.cc",
101 "shell_surface_util.h",
reveman27fe2642015-11-20 06:33:39102 "sub_surface.cc",
103 "sub_surface.h",
Lucas Berthouf18ac602021-11-12 21:35:10104 "sub_surface_observer.h",
revemanb195f41d2015-11-19 22:16:48105 "surface.cc",
106 "surface.h",
107 "surface_delegate.h",
reveman27fe2642015-11-20 06:33:39108 "surface_observer.h",
Peng Huangb07b0652017-06-27 17:25:22109 "surface_tree_host.cc",
110 "surface_tree_host.h",
Eriko Kurimotod02f7052022-11-29 01:23:15111 "text_input.cc",
112 "text_input.h",
113 "toast_surface.cc",
114 "toast_surface.h",
115 "toast_surface_manager.h",
reveman90b85ed2015-12-10 02:39:33116 "touch.cc",
117 "touch.h",
118 "touch_delegate.h",
Eriko Kurimotod02f7052022-11-29 01:23:15119 "ui_lock_controller.cc",
120 "ui_lock_controller.h",
kylechar5361171352019-04-26 18:23:12121 "vsync_timing_manager.cc",
122 "vsync_timing_manager.h",
Hiroki Satoebc5f73a32021-07-26 05:47:17123 "window_properties.cc",
124 "window_properties.h",
penghuang76977a52016-08-16 15:40:07125 "wm_helper.cc",
126 "wm_helper.h",
Eriko Kurimotod02f7052022-11-29 01:23:15127 "wm_helper_chromeos.cc",
128 "wm_helper_chromeos.h",
129 "xdg_shell_surface.cc",
130 "xdg_shell_surface.h",
131 "xkb_tracker.cc",
132 "xkb_tracker.h",
revemanb195f41d2015-11-19 22:16:48133 ]
134
135 deps = [
Eriko Kurimotod02f7052022-11-29 01:23:15136 "//ash",
137 "//ash/constants",
138 "//ash/keyboard/ui",
139 "//ash/public/cpp",
140 "//ash/resources/vector_icons",
revemanb195f41d2015-11-19 22:16:48141 "//base",
revemanb195f41d2015-11-19 22:16:48142 "//cc",
Eriko Kurimotod02f7052022-11-29 01:23:15143 "//chromeos/crosapi/cpp:crosapi_constants",
144 "//chromeos/dbus/power",
145 "//chromeos/dbus/power:power_manager_proto",
146 "//chromeos/ui/base",
147 "//chromeos/ui/frame",
148 "//components/app_restore",
149 "//components/fullscreen_control",
150 "//components/strings",
Eliot Courtney9d620302019-06-14 00:40:49151 "//components/viz/host",
denniskempin68de18242016-07-14 00:04:59152 "//device/gamepad",
juncai2f298a82017-04-18 03:51:39153 "//device/gamepad/public/cpp:shared_with_blink",
revemanb195f41d2015-11-19 22:16:48154 "//gpu",
Daniele Castagnaa8ace632019-04-03 18:01:29155 "//gpu/command_buffer/client:raster_interface",
Fergus Dall9a9d37c2019-05-16 03:32:25156 "//net",
157 "//services/data_decoder/public/cpp",
Miyoung Shin2be27f52019-07-27 15:35:39158 "//services/viz/privileged/mojom/compositing",
revemanb195f41d2015-11-19 22:16:48159 "//skia",
Fergus Dall9a9d37c2019-05-16 03:32:25160 "//third_party/blink/public/common",
Manu Cornet81dc4ecd2020-10-16 22:25:40161 "//ui/accessibility:ax_base",
revemanb195f41d2015-11-19 22:16:48162 "//ui/aura",
Eriko Kurimotod02f7052022-11-29 01:23:15163 "//ui/base",
164 "//ui/base:hit_test",
Henrique Ferreiro0fe310d112021-03-23 23:09:04165 "//ui/base/dragdrop:types",
Henrique Ferreiroa1f22d62021-02-12 17:32:20166 "//ui/base/dragdrop/mojom",
Jun Mukaia446ee7f2018-07-20 22:55:15167 "//ui/base/ime",
revemanb195f41d2015-11-19 22:16:48168 "//ui/compositor",
Tommy C. Li092c628a2018-03-29 20:32:15169 "//ui/compositor_extra",
kylechar731f85f92016-12-01 20:50:46170 "//ui/display/manager",
yhanada5d5b8cb52016-12-10 04:16:02171 "//ui/events/devices:devices",
Michael Spang4305feb42019-11-20 18:24:27172 "//ui/events/ozone",
Eriko Kurimotod02f7052022-11-29 01:23:15173 "//ui/events/ozone/layout",
revemanb195f41d2015-11-19 22:16:48174 "//ui/gfx",
175 "//ui/gfx/geometry",
176 "//ui/gl",
Toshiki Kikuchi7c2894d2018-10-10 01:02:09177 "//ui/message_center",
178 "//ui/message_center/public/cpp",
Jingkui Wang9ec45ba2017-09-12 21:27:48179 "//ui/ozone",
revemanb195f41d2015-11-19 22:16:48180 "//ui/views",
skycea631e2016-12-16 21:52:22181 "//ui/wm",
Thiago Farina3b086a02017-05-30 22:32:50182 "//ui/wm/public",
revemanb195f41d2015-11-19 22:16:48183 ]
erosky9f31b772016-10-04 01:10:16184
Mitsuru Oshima19d909272020-06-26 19:13:15185 assert_no_deps = [
Yao Li5a6b8422021-12-03 03:23:25186 "//ash/components/arc",
Mitsuru Oshima19d909272020-06-26 19:13:15187 "//components/arc",
188 "//content/public/browser",
189 "//content/public/common",
190 ]
191
Henrique Ferreiro3a6bd7c72020-02-27 09:51:20192 public_deps = [
Henrique Ferreiro5a79d8662021-12-07 14:56:42193 "//ui/base/cursor",
Henrique Ferreiroe09c0efd2020-05-07 14:29:46194 "//ui/base/cursor/mojom:cursor_type",
Henrique Ferreiro1748fd12020-08-04 12:51:46195 "//ui/base/dragdrop/mojom:mojom_headers",
Henrique Ferreiro3a6bd7c72020-02-27 09:51:20196 ]
Henrique Ferreirob43235cf2020-02-27 01:05:36197
Eriko Kurimotod02f7052022-11-29 01:23:15198 if (use_xkbcommon) {
199 configs += [ ":xkbcommon" ]
erosky9f31b772016-10-04 01:10:16200 }
revemanb195f41d2015-11-19 22:16:48201}
202
203source_set("test_support") {
204 testonly = true
205
Daniel Nicoara3e65fb52018-12-05 22:02:46206 sources = [
yjliu00982d22020-10-14 00:31:12207 "mock_vsync_timing_observer.cc",
208 "mock_vsync_timing_observer.h",
Eriko Kurimotod02f7052022-11-29 01:23:15209 "test/exo_test_base.cc",
210 "test/exo_test_base.h",
Peter Kastingb2600ae32019-05-14 04:42:25211 "test/exo_test_base_views.cc",
212 "test/exo_test_base_views.h",
Eriko Kurimotod02f7052022-11-29 01:23:15213 "test/exo_test_data_exchange_delegate.cc",
214 "test/exo_test_data_exchange_delegate.h",
215 "test/exo_test_helper.cc",
216 "test/exo_test_helper.h",
Daniel Nicoara332761202018-12-10 20:00:59217 "test/exo_test_suite_aura.cc",
218 "test/exo_test_suite_aura.h",
Nicholas Hollingumfb87b822022-07-20 01:08:26219 "test/mock_security_delegate.cc",
220 "test/mock_security_delegate.h",
Eriko Kurimotod02f7052022-11-29 01:23:15221 "test/shell_surface_builder.cc",
222 "test/shell_surface_builder.h",
Mitsuru Oshima5eb13a12022-08-01 16:54:41223 "test/test_security_delegate.cc",
224 "test/test_security_delegate.h",
Daniel Nicoara3e65fb52018-12-05 22:02:46225 ]
226
Mirko Bonadei1c098b882020-03-07 04:46:03227 public_deps = [ "//testing/gtest" ]
228
revemanb195f41d2015-11-19 22:16:48229 deps = [
penghuang608523d42016-08-18 17:05:28230 ":exo",
Eriko Kurimotod02f7052022-11-29 01:23:15231 "//ash:test_support",
232 "//ash/public/cpp",
revemanb195f41d2015-11-19 22:16:48233 "//base",
Daniel Nicoara332761202018-12-10 20:00:59234 "//base/test:test_support",
Eriko Kurimotod02f7052022-11-29 01:23:15235 "//chromeos/ui/base",
236 "//components/exo/wayland:weston_test_stub",
kylechara4a664e62020-01-15 18:46:44237 "//components/viz/service",
brettw15764b12015-11-30 22:11:05238 "//gpu",
revemanb195f41d2015-11-19 22:16:48239 "//skia",
brettw15764b12015-11-30 22:11:05240 "//ui/aura",
Henrique Ferreiroa1f22d62021-02-12 17:32:20241 "//ui/base/dragdrop/mojom",
Michael Spang539c6f32019-04-03 19:08:52242 "//ui/base/ime/init",
brettw15764b12015-11-30 22:11:05243 "//ui/compositor",
Daniel Nicoaraec62bcf42018-12-05 21:22:42244 "//ui/compositor:test_support",
245 "//ui/display/manager",
brettw15764b12015-11-30 22:11:05246 "//ui/gfx/geometry",
Daniel Nicoara332761202018-12-10 20:00:59247 "//ui/gl:test_support",
denniskempin31a496e2016-12-17 00:20:57248 "//ui/views",
Peter Kastingb2600ae32019-05-14 04:42:25249 "//ui/views:test_support",
Thiago Farina3b086a02017-05-30 22:32:50250 "//ui/wm",
revemanb195f41d2015-11-19 22:16:48251 ]
revemanb195f41d2015-11-19 22:16:48252}
253
254source_set("unit_tests") {
255 testonly = true
256
Eriko Kurimotod02f7052022-11-29 01:23:15257 sources = [
258 "../../ui/events/ozone/gamepad/gamepad_event.cc",
259 "buffer_unittest.cc",
260 "client_controlled_shell_surface_unittest.cc",
261 "data_device_unittest.cc",
262 "data_offer_unittest.cc",
263 "data_source_unittest.cc",
264 "display_unittest.cc",
265 "drag_drop_operation_unittest.cc",
266 "event_latency_metrics_unittest.cc",
267 "extended_drag_source_unittest.cc",
268 "gamepad_unittest.cc",
269 "gaming_seat_unittest.cc",
270 "input_method_surface_unittest.cc",
271 "keyboard_unittest.cc",
272 "mime_utils_unittest.cc",
273 "notification_unittest.cc",
274 "permission_unittest.cc",
275 "pointer_unittest.cc",
276 "seat_unittest.cc",
277 "shared_memory_unittest.cc",
278 "shell_surface_presentation_time_recorder_unittest.cc",
279 "shell_surface_unittest.cc",
280 "shell_surface_util_unittest.cc",
281 "sub_surface_unittest.cc",
282 "surface_test_util.cc",
283 "surface_test_util.h",
284 "surface_tree_host_unittest.cc",
285 "surface_unittest.cc",
286 "text_input_unittest.cc",
287 "toast_surface_unittest.cc",
288 "touch_unittest.cc",
289 "ui_lock_controller_unittest.cc",
290 "wm_helper_chromeos_unittest.cc",
291 "xdg_shell_surface_unittest.cc",
292 ]
293
revemanb195f41d2015-11-19 22:16:48294 deps = [
reveman27fe2642015-11-20 06:33:39295 ":exo",
296 ":test_support",
Eriko Kurimotod02f7052022-11-29 01:23:15297 "//ash",
298 "//ash:test_support",
299 "//ash/constants",
300 "//ash/keyboard/ui",
301 "//ash/public/cpp",
302 "//ash/public/cpp/external_arc",
brettw15764b12015-11-30 22:11:05303 "//base",
denniskempin68de18242016-07-14 00:04:59304 "//base/test:test_support",
brettw15764b12015-11-30 22:11:05305 "//cc",
eseckler599d86bb2017-03-15 09:02:55306 "//cc:test_support",
Eriko Kurimotod02f7052022-11-29 01:23:15307 "//chromeos/dbus/power",
308 "//chromeos/dbus/power:power_manager_proto",
309 "//chromeos/ui/base",
310 "//chromeos/ui/frame",
311 "//components/fullscreen_control",
revemanb195f41d2015-11-19 22:16:48312 "//components/user_manager",
Fady Samuel764e0a42017-07-13 22:35:44313 "//components/viz/service",
Fady Samuelc296f5fb2017-07-21 04:02:19314 "//components/viz/test:test_support",
Fergus Dall9a9d37c2019-05-16 03:32:25315 "//content/test:test_support",
denniskempin68de18242016-07-14 00:04:59316 "//device/gamepad:test_helpers",
Daniele Castagnaa8ace632019-04-03 18:01:29317 "//gpu/command_buffer/client:raster_interface",
revemanb195f41d2015-11-19 22:16:48318 "//skia",
reveman39b32c872015-12-08 05:34:05319 "//testing/gmock",
revemanb195f41d2015-11-19 22:16:48320 "//testing/gtest",
brettw15764b12015-11-30 22:11:05321 "//ui/aura",
Eriko Kurimotod02f7052022-11-29 01:23:15322 "//ui/base:test_support",
323 "//ui/base/cursor/mojom:cursor_type",
324 "//ui/base/dragdrop:types",
325 "//ui/base/dragdrop/mojom",
326 "//ui/base/ime/ash",
Alex Zhang3f8482b2017-08-01 15:16:24327 "//ui/compositor:test_support",
Tommy C. Li092c628a2018-03-29 20:32:15328 "//ui/compositor_extra",
reveman5cacf70c2015-12-09 22:50:02329 "//ui/events:dom_keycode_converter",
reveman39b32c872015-12-08 05:34:05330 "//ui/events:test_support",
Michael Spang4305feb42019-11-20 18:24:27331 "//ui/events/ozone",
brettw15764b12015-11-30 22:11:05332 "//ui/gfx",
Eriko Kurimotod02f7052022-11-29 01:23:15333 "//ui/gfx:test_support",
334 "//ui/gfx/geometry",
revemanb195f41d2015-11-19 22:16:48335 "//ui/message_center",
brettw15764b12015-11-30 22:11:05336 "//ui/views",
skycea631e2016-12-16 21:52:22337 "//ui/wm",
revemanb195f41d2015-11-19 22:16:48338 ]
revemanb195f41d2015-11-19 22:16:48339}
340
341test("exo_unittests") {
Dirk Pranke79d065d2020-08-29 03:28:30342 use_xvfb = use_xvfb_in_this_config
343
Nico Weber5b5acd82020-01-13 19:55:59344 sources = [ "test/run_all_unittests.cc" ]
oshima2a44e112016-06-23 17:59:18345
revemanb195f41d2015-11-19 22:16:48346 deps = [
Daniel Nicoara332761202018-12-10 20:00:59347 ":test_support",
revemanb195f41d2015-11-19 22:16:48348 ":unit_tests",
brettw15764b12015-11-30 22:11:05349 "//base",
350 "//base/test:test_support",
Scott Violet260dabf2017-07-14 17:17:51351 "//cc:test_support",
Eriko Kurimotod02f7052022-11-29 01:23:15352 "//chromeos/ash/components:test_support",
353 "//components/exo/server:unit_tests",
354 "//components/exo/wayland:unit_tests",
Scott Violet260dabf2017-07-14 17:17:51355 "//components/viz/test:test_support",
denniskempin68de18242016-07-14 00:04:59356 "//device/gamepad:test_helpers",
Ken Rockot9b26bc52018-07-04 19:57:49357 "//mojo/core/embedder",
skyd06586d2017-02-22 17:46:36358 "//testing/gtest",
359 "//ui/aura",
Scott Violet348ecf72017-11-28 18:28:19360 "//ui/aura:test_support",
skyd06586d2017-02-22 17:46:36361 "//ui/base",
sky25b49b282017-03-31 14:41:13362 "//ui/compositor:test_support",
skyd06586d2017-02-22 17:46:36363 "//ui/gl:test_support",
revemanb195f41d2015-11-19 22:16:48364 ]
oshima2a44e112016-06-23 17:59:18365
Steven Bennetts6972bbe2018-12-05 02:18:53366 data_deps = []
revemanb195f41d2015-11-19 22:16:48367}