blob: 80b05c4a0d987c033e27d20d53300a20bf20b392 [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")
Hidehiko Abe3375cfe52020-09-29 08:48:266import("//build/config/linux/pkg_config.gni")
brettwb5440a92015-12-03 00:47:127import("//build/config/ui.gni")
Steven Bennetts99f5b692018-11-27 16:31:408import("//chrome/common/features.gni")
revemanb195f41d2015-11-19 22:16:489import("//testing/test.gni")
Hidehiko Abe3375cfe52020-09-29 08:48:2610import("//ui/base/ui_features.gni")
11
Mitsuru Oshimaf1e1b6b2022-04-12 13:23:5912assert(use_ozone)
Georg Neis3f3a1532024-12-24 09:20:4613assert(is_chromeos)
Mitsuru Oshimaf1e1b6b2022-04-12 13:23:5914
Hidehiko Abe3375cfe52020-09-29 08:48:2615if (use_xkbcommon) {
16 pkg_config("xkbcommon") {
17 packages = [ "xkbcommon" ]
18 }
19}
revemanb195f41d2015-11-19 22:16:4820
Mitsuru Oshima51bf3d5472020-06-17 21:28:3421static_library("exo") {
revemanb195f41d2015-11-19 22:16:4822 sources = [
23 "buffer.cc",
24 "buffer.h",
Eriko Kurimotod02f7052022-11-29 01:23:1525 "client_controlled_accelerators.cc",
26 "client_controlled_accelerators.h",
27 "client_controlled_shell_surface.cc",
28 "client_controlled_shell_surface.h",
29 "custom_window_state_delegate.cc",
30 "custom_window_state_delegate.h",
Daichi Hironofc1a9fb2017-07-19 07:14:5531 "data_device.cc",
32 "data_device.h",
33 "data_device_delegate.h",
Joel Hockey5875dba2020-12-01 22:47:5534 "data_exchange_delegate.h",
Daichi Hironofc1a9fb2017-07-19 07:14:5535 "data_offer.cc",
36 "data_offer.h",
37 "data_offer_delegate.h",
Daichi Hirono29647ac2017-08-15 09:11:5238 "data_offer_observer.h",
Daichi Hironofc1a9fb2017-07-19 07:14:5539 "data_source.cc",
40 "data_source.h",
41 "data_source_delegate.h",
Daichi Hirono19ff5882017-11-30 03:37:3442 "data_source_observer.h",
revemanb195f41d2015-11-19 22:16:4843 "display.cc",
44 "display.h",
Fergus Dalla4293852019-07-26 07:13:4745 "drag_drop_operation.cc",
46 "drag_drop_operation.h",
Eriko Kurimotod02f7052022-11-29 01:23:1547 "extended_drag_offer.cc",
48 "extended_drag_offer.h",
49 "extended_drag_source.cc",
50 "extended_drag_source.h",
Albert Chaulk56e96582019-01-30 19:33:1851 "frame_sink_resource_manager.cc",
52 "frame_sink_resource_manager.h",
Yuzhu Shenc5cd21e2023-02-20 01:15:0553 "frame_timing_history.cc",
54 "frame_timing_history.h",
Eriko Kurimotod02f7052022-11-29 01:23:1555 "gamepad.cc",
56 "gamepad.h",
57 "gamepad_observer.h",
58 "gaming_seat.cc",
59 "gaming_seat.h",
60 "input_method_surface.cc",
61 "input_method_surface.h",
62 "input_method_surface_manager.h",
[email protected]bfb23cb2019-05-29 21:02:5763 "input_trace.h",
Hidehiko Abe190f69342021-04-02 19:58:4564 "key_state.h",
Eriko Kurimotod02f7052022-11-29 01:23:1565 "keyboard.cc",
66 "keyboard.h",
reveman5cacf70c2015-12-09 22:50:0267 "keyboard_delegate.h",
yhanada5d5b8cb52016-12-10 04:16:0268 "keyboard_device_configuration_delegate.h",
Eriko Kurimotod02f7052022-11-29 01:23:1569 "keyboard_modifiers.h",
yhanadaaaaf52e2017-07-14 09:53:5670 "keyboard_observer.h",
danakjc7afae52017-06-20 21:12:4171 "layer_tree_frame_sink_holder.cc",
72 "layer_tree_frame_sink_holder.h",
Fergus Dall9a9d37c2019-05-16 03:32:2573 "mime_utils.cc",
74 "mime_utils.h",
Eriko Kurimotod02f7052022-11-29 01:23:1575 "notification.cc",
76 "notification.h",
77 "notification_surface.cc",
78 "notification_surface.h",
79 "notification_surface_manager.h",
Nicholas Hollingumbad8a05f62019-12-05 05:56:2180 "permission.cc",
81 "permission.h",
Daniel Nicoara64d43752019-06-10 16:57:1582 "pointer.cc",
83 "pointer.h",
Nicholas Hollingume9a6744f2019-10-03 05:57:2984 "pointer_constraint_delegate.h",
Daniel Nicoara64d43752019-06-10 16:57:1585 "pointer_delegate.h",
Jeffrey Kardatzke51c59ff2022-01-10 20:47:2286 "protected_native_pixmap_query_delegate.h",
Daichi Hirono3d3468d2017-11-20 02:02:3487 "seat.cc",
88 "seat.h",
89 "seat_observer.h",
Nicholas Hollingumda837042022-07-18 23:46:4990 "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",
Shawn Galleaa2c085e2018-11-27 18:40:2398 "shell_surface_util.cc",
99 "shell_surface_util.h",
reveman27fe2642015-11-20 06:33:39100 "sub_surface.cc",
101 "sub_surface.h",
Lucas Berthouf18ac602021-11-12 21:35:10102 "sub_surface_observer.h",
revemanb195f41d2015-11-19 22:16:48103 "surface.cc",
104 "surface.h",
105 "surface_delegate.h",
reveman27fe2642015-11-20 06:33:39106 "surface_observer.h",
Peng Huangb07b0652017-06-27 17:25:22107 "surface_tree_host.cc",
108 "surface_tree_host.h",
Eriko Kurimotod02f7052022-11-29 01:23:15109 "text_input.cc",
110 "text_input.h",
111 "toast_surface.cc",
112 "toast_surface.h",
113 "toast_surface_manager.h",
reveman90b85ed2015-12-10 02:39:33114 "touch.cc",
115 "touch.h",
116 "touch_delegate.h",
Eriko Kurimotod02f7052022-11-29 01:23:15117 "ui_lock_controller.cc",
118 "ui_lock_controller.h",
kylechar5361171352019-04-26 18:23:12119 "vsync_timing_manager.cc",
120 "vsync_timing_manager.h",
Hiroki Satoebc5f73a32021-07-26 05:47:17121 "window_properties.cc",
122 "window_properties.h",
penghuang76977a52016-08-16 15:40:07123 "wm_helper.cc",
124 "wm_helper.h",
Eriko Kurimotod02f7052022-11-29 01:23:15125 "xdg_shell_surface.cc",
126 "xdg_shell_surface.h",
127 "xkb_tracker.cc",
128 "xkb_tracker.h",
revemanb195f41d2015-11-19 22:16:48129 ]
130
131 deps = [
Eriko Kurimotod02f7052022-11-29 01:23:15132 "//ash",
133 "//ash/constants",
134 "//ash/keyboard/ui",
135 "//ash/public/cpp",
136 "//ash/resources/vector_icons",
revemanb195f41d2015-11-19 22:16:48137 "//base",
138 "//cc",
Kramer Gefae2abd52023-07-20 05:48:54139 "//cc/mojo_embedder:mojo_embedder",
Eriko Kurimotod02f7052022-11-29 01:23:15140 "//chromeos/dbus/power",
141 "//chromeos/dbus/power:power_manager_proto",
142 "//chromeos/ui/base",
143 "//chromeos/ui/frame",
Eriko Kurimoto2c8192942024-08-16 01:42:55144 "//components/account_id",
Eriko Kurimotod02f7052022-11-29 01:23:15145 "//components/app_restore",
146 "//components/fullscreen_control",
147 "//components/strings",
Eliot Courtney9d620302019-06-14 00:40:49148 "//components/viz/host",
denniskempin68de18242016-07-14 00:04:59149 "//device/gamepad",
juncai2f298a82017-04-18 03:51:39150 "//device/gamepad/public/cpp:shared_with_blink",
revemanb195f41d2015-11-19 22:16:48151 "//gpu",
Daniele Castagnaa8ace632019-04-03 18:01:29152 "//gpu/command_buffer/client:raster_interface",
Fergus Dall9a9d37c2019-05-16 03:32:25153 "//net",
154 "//services/data_decoder/public/cpp",
Miyoung Shin2be27f52019-07-27 15:35:39155 "//services/viz/privileged/mojom/compositing",
revemanb195f41d2015-11-19 22:16:48156 "//skia",
Fergus Dall9a9d37c2019-05-16 03:32:25157 "//third_party/blink/public/common",
Mitsuru Oshimaec55fb62023-04-28 16:55:18158 "//ui/accessibility",
Manu Cornet81dc4ec2020-10-16 22:25:40159 "//ui/accessibility:ax_base",
revemanb195f41d2015-11-19 22:16:48160 "//ui/aura",
Eriko Kurimotod02f7052022-11-29 01:23:15161 "//ui/base",
162 "//ui/base:hit_test",
Henrique Ferreiro0fe310d112021-03-23 23:09:04163 "//ui/base/dragdrop:types",
Henrique Ferreiroa1f22d62021-02-12 17:32:20164 "//ui/base/dragdrop/mojom",
Jun Mukaia446ee7f2018-07-20 22:55:15165 "//ui/base/ime",
Timothy Loh3fc540082023-04-05 04:09:47166 "//ui/base/ime/ash",
revemanb195f41d2015-11-19 22:16:48167 "//ui/compositor",
Tommy C. Li092c628a2018-03-29 20:32:15168 "//ui/compositor_extra",
kylechar731f85f92016-12-01 20:50:46169 "//ui/display/manager",
yhanada5d5b8cb52016-12-10 04:16:02170 "//ui/events/devices:devices",
Michael Spang4305feb42019-11-20 18:24:27171 "//ui/events/ozone",
David Padlipsky20258f22024-02-17 01:50:02172 "//ui/events/ozone/evdev:mouse_button_property",
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 = [
Hidehiko Abe89ebba172025-01-30 19:33:29186 "//chromeos/ash/experiences/arc",
Hidehiko Abe6b7c1202025-01-10 00:08:28187 "//chromeos/ash/experiences/arc/intent_helper",
Mitsuru Oshima19d909272020-06-26 19:13:15188 "//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",
Eriko Kurimotod02f7052022-11-29 01:23:15211 "test/exo_test_data_exchange_delegate.cc",
212 "test/exo_test_data_exchange_delegate.h",
213 "test/exo_test_helper.cc",
214 "test/exo_test_helper.h",
Daniel Nicoara332761202018-12-10 20:00:59215 "test/exo_test_suite_aura.cc",
216 "test/exo_test_suite_aura.h",
Nicholas Hollingumfb87b822022-07-20 01:08:26217 "test/mock_security_delegate.cc",
218 "test/mock_security_delegate.h",
Eriko Kurimotod02f7052022-11-29 01:23:15219 "test/shell_surface_builder.cc",
220 "test/shell_surface_builder.h",
Yuzhu Shenc5cd21e2023-02-20 01:15:05221 "test/surface_tree_host_test_util.cc",
222 "test/surface_tree_host_test_util.h",
Mitsuru Oshimad3f5d462023-11-14 02:16:58223 "test/test_data_device_delegate.cc",
224 "test/test_data_device_delegate.h",
Joel Hockey6439b5b2024-02-09 20:46:46225 "test/test_data_offer_delegate.cc",
226 "test/test_data_offer_delegate.h",
227 "test/test_data_source_delegate.cc",
228 "test/test_data_source_delegate.h",
Mitsuru Oshima5eb13a12022-08-01 16:54:41229 "test/test_security_delegate.cc",
230 "test/test_security_delegate.h",
Daniel Nicoara3e65fb52018-12-05 22:02:46231 ]
232
Mirko Bonadei1c098b882020-03-07 04:46:03233 public_deps = [ "//testing/gtest" ]
234
revemanb195f41d2015-11-19 22:16:48235 deps = [
penghuang608523d42016-08-18 17:05:28236 ":exo",
Eriko Kurimotod02f7052022-11-29 01:23:15237 "//ash:test_support",
238 "//ash/public/cpp",
revemanb195f41d2015-11-19 22:16:48239 "//base",
Daniel Nicoara332761202018-12-10 20:00:59240 "//base/test:test_support",
Eriko Kurimotod02f7052022-11-29 01:23:15241 "//chromeos/ui/base",
Max Ihlenfeldta4e9a572022-12-08 10:04:46242 "//components/exo/wayland:ui_controls_protocol_stub",
kylechara4a664e62020-01-15 18:46:44243 "//components/viz/service",
brettw15764b12015-11-30 22:11:05244 "//gpu",
revemanb195f41d2015-11-19 22:16:48245 "//skia",
brettw15764b12015-11-30 22:11:05246 "//ui/aura",
Henrique Ferreiroa1f22d62021-02-12 17:32:20247 "//ui/base/dragdrop/mojom",
Michael Spang539c6f32019-04-03 19:08:52248 "//ui/base/ime/init",
brettw15764b12015-11-30 22:11:05249 "//ui/compositor",
Daniel Nicoaraec62bcf42018-12-05 21:22:42250 "//ui/compositor:test_support",
251 "//ui/display/manager",
brettw15764b12015-11-30 22:11:05252 "//ui/gfx/geometry",
Daniel Nicoara332761202018-12-10 20:00:59253 "//ui/gl:test_support",
denniskempin31a496e2016-12-17 00:20:57254 "//ui/views",
Peter Kastingb2600ae32019-05-14 04:42:25255 "//ui/views:test_support",
Thiago Farina3b086a02017-05-30 22:32:50256 "//ui/wm",
revemanb195f41d2015-11-19 22:16:48257 ]
258}
259
260source_set("unit_tests") {
261 testonly = true
262
Eriko Kurimotod02f7052022-11-29 01:23:15263 sources = [
264 "../../ui/events/ozone/gamepad/gamepad_event.cc",
265 "buffer_unittest.cc",
266 "client_controlled_shell_surface_unittest.cc",
267 "data_device_unittest.cc",
268 "data_offer_unittest.cc",
269 "data_source_unittest.cc",
270 "display_unittest.cc",
271 "drag_drop_operation_unittest.cc",
272 "event_latency_metrics_unittest.cc",
273 "extended_drag_source_unittest.cc",
274 "gamepad_unittest.cc",
275 "gaming_seat_unittest.cc",
276 "input_method_surface_unittest.cc",
277 "keyboard_unittest.cc",
278 "mime_utils_unittest.cc",
279 "notification_unittest.cc",
280 "permission_unittest.cc",
281 "pointer_unittest.cc",
282 "seat_unittest.cc",
283 "shared_memory_unittest.cc",
Eriko Kurimotod02f7052022-11-29 01:23:15284 "shell_surface_unittest.cc",
285 "shell_surface_util_unittest.cc",
286 "sub_surface_unittest.cc",
287 "surface_test_util.cc",
288 "surface_test_util.h",
289 "surface_tree_host_unittest.cc",
290 "surface_unittest.cc",
291 "text_input_unittest.cc",
292 "toast_surface_unittest.cc",
293 "touch_unittest.cc",
294 "ui_lock_controller_unittest.cc",
Mitsuru Oshima7e0d94622023-01-23 05:32:37295 "wm_helper_unittest.cc",
Eriko Kurimotod02f7052022-11-29 01:23:15296 "xdg_shell_surface_unittest.cc",
297 ]
298
revemanb195f41d2015-11-19 22:16:48299 deps = [
reveman27fe2642015-11-20 06:33:39300 ":exo",
301 ":test_support",
Eriko Kurimotod02f7052022-11-29 01:23:15302 "//ash",
303 "//ash:test_support",
304 "//ash/constants",
305 "//ash/keyboard/ui",
306 "//ash/public/cpp",
brettw15764b12015-11-30 22:11:05307 "//base",
denniskempin68de18242016-07-14 00:04:59308 "//base/test:test_support",
brettw15764b12015-11-30 22:11:05309 "//cc",
eseckler599d86bb2017-03-15 09:02:55310 "//cc:test_support",
Kramer Gefae2abd52023-07-20 05:48:54311 "//cc/mojo_embedder:mojo_embedder",
Yuki Awano64ec451f2023-05-09 04:07:57312 "//chromeos/ash/components/login/auth",
Hidehiko Abe89ebba172025-01-30 19:33:29313 "//chromeos/ash/experiences/arc",
Eriko Kurimotod02f7052022-11-29 01:23:15314 "//chromeos/dbus/power",
315 "//chromeos/dbus/power:power_manager_proto",
316 "//chromeos/ui/base",
317 "//chromeos/ui/frame",
Toshiki Kikuchibfd314bb2023-04-20 03:52:14318 "//chromeos/ui/wm",
Eriko Kurimotod02f7052022-11-29 01:23:15319 "//components/fullscreen_control",
revemanb195f41d2015-11-19 22:16:48320 "//components/user_manager",
Fady Samuel