blob: f2812a9a890e8c745c5782431dff6bac4daf2793 [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",
Yuzhu Shenc5cd21e2023-02-20 01:15:0554 "frame_timing_history.cc",
55 "frame_timing_history.h",
Eriko Kurimotod02f7052022-11-29 01:23:1556 "gamepad.cc",
57 "gamepad.h",
58 "gamepad_observer.h",
59 "gaming_seat.cc",
60 "gaming_seat.h",
61 "input_method_surface.cc",
62 "input_method_surface.h",
63 "input_method_surface_manager.h",
[email protected]bfb23cb2019-05-29 21:02:5764 "input_trace.h",
Hidehiko Abe190f69342021-04-02 19:58:4565 "key_state.h",
Eriko Kurimotod02f7052022-11-29 01:23:1566 "keyboard.cc",
67 "keyboard.h",
reveman5cacf70c2015-12-09 22:50:0268 "keyboard_delegate.h",
yhanada5d5b8cb52016-12-10 04:16:0269 "keyboard_device_configuration_delegate.h",
Eriko Kurimotod02f7052022-11-29 01:23:1570 "keyboard_modifiers.h",
yhanadaaaaf52e2017-07-14 09:53:5671 "keyboard_observer.h",
danakjc7afae52017-06-20 21:12:4172 "layer_tree_frame_sink_holder.cc",
73 "layer_tree_frame_sink_holder.h",
Fergus Dall9a9d37c2019-05-16 03:32:2574 "mime_utils.cc",
75 "mime_utils.h",
Eriko Kurimotod02f7052022-11-29 01:23:1576 "notification.cc",
77 "notification.h",
78 "notification_surface.cc",
79 "notification_surface.h",
80 "notification_surface_manager.h",
Nicholas Hollingumbad8a05f62019-12-05 05:56:2181 "permission.cc",
82 "permission.h",
Daniel Nicoara64d43752019-06-10 16:57:1583 "pointer.cc",
84 "pointer.h",
Nicholas Hollingume9a6744f2019-10-03 05:57:2985 "pointer_constraint_delegate.h",
Daniel Nicoara64d43752019-06-10 16:57:1586 "pointer_delegate.h",
Jeffrey Kardatzke51c59ff2022-01-10 20:47:2287 "protected_native_pixmap_query_delegate.h",
Daichi Hirono3d3468d2017-11-20 02:02:3488 "seat.cc",
89 "seat.h",
90 "seat_observer.h",
Nicholas Hollingumda837042022-07-18 23:46:4991 "security_delegate.cc",
92 "security_delegate.h",
revemanb195f41d2015-11-19 22:16:4893 "shared_memory.cc",
94 "shared_memory.h",
Eriko Kurimotod02f7052022-11-29 01:23:1595 "shell_surface.cc",
96 "shell_surface.h",
97 "shell_surface_base.cc",
98 "shell_surface_base.h",
99 "shell_surface_observer.h",
100 "shell_surface_presentation_time_recorder.cc",
101 "shell_surface_presentation_time_recorder.h",
Shawn Galleaa2c085e2018-11-27 18:40:23102 "shell_surface_util.cc",
103 "shell_surface_util.h",
reveman27fe2642015-11-20 06:33:39104 "sub_surface.cc",
105 "sub_surface.h",
Lucas Berthouf18ac602021-11-12 21:35:10106 "sub_surface_observer.h",
revemanb195f41d2015-11-19 22:16:48107 "surface.cc",
108 "surface.h",
109 "surface_delegate.h",
reveman27fe2642015-11-20 06:33:39110 "surface_observer.h",
Peng Huangb07b0652017-06-27 17:25:22111 "surface_tree_host.cc",
112 "surface_tree_host.h",
Eriko Kurimotod02f7052022-11-29 01:23:15113 "text_input.cc",
114 "text_input.h",
115 "toast_surface.cc",
116 "toast_surface.h",
117 "toast_surface_manager.h",
reveman90b85ed2015-12-10 02:39:33118 "touch.cc",
119 "touch.h",
120 "touch_delegate.h",
Eriko Kurimotod02f7052022-11-29 01:23:15121 "ui_lock_controller.cc",
122 "ui_lock_controller.h",
kylechar5361171352019-04-26 18:23:12123 "vsync_timing_manager.cc",
124 "vsync_timing_manager.h",
Hiroki Satoebc5f73a32021-07-26 05:47:17125 "window_properties.cc",
126 "window_properties.h",
penghuang76977a52016-08-16 15:40:07127 "wm_helper.cc",
128 "wm_helper.h",
Eriko Kurimotod02f7052022-11-29 01:23:15129 "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",
Kramer Gefae2abd52023-07-20 05:48:54143 "//cc/mojo_embedder:mojo_embedder",
Eriko Kurimotod02f7052022-11-29 01:23:15144 "//chromeos/crosapi/cpp:crosapi_constants",
145 "//chromeos/dbus/power",
146 "//chromeos/dbus/power:power_manager_proto",
147 "//chromeos/ui/base",
148 "//chromeos/ui/frame",
149 "//components/app_restore",
150 "//components/fullscreen_control",
151 "//components/strings",
Eliot Courtney9d620302019-06-14 00:40:49152 "//components/viz/host",
denniskempin68de18242016-07-14 00:04:59153 "//device/gamepad",
juncai2f298a82017-04-18 03:51:39154 "//device/gamepad/public/cpp:shared_with_blink",
revemanb195f41d2015-11-19 22:16:48155 "//gpu",
Daniele Castagnaa8ace632019-04-03 18:01:29156 "//gpu/command_buffer/client:raster_interface",
Fergus Dall9a9d37c2019-05-16 03:32:25157 "//net",
158 "//services/data_decoder/public/cpp",
Miyoung Shin2be27f52019-07-27 15:35:39159 "//services/viz/privileged/mojom/compositing",
revemanb195f41d2015-11-19 22:16:48160 "//skia",
Fergus Dall9a9d37c2019-05-16 03:32:25161 "//third_party/blink/public/common",
Mitsuru Oshimaec55fb62023-04-28 16:55:18162 "//ui/accessibility",
Manu Cornet81dc4ecd2020-10-16 22:25:40163 "//ui/accessibility:ax_base",
revemanb195f41d2015-11-19 22:16:48164 "//ui/aura",
Eriko Kurimotod02f7052022-11-29 01:23:15165 "//ui/base",
166 "//ui/base:hit_test",
Henrique Ferreiro0fe310d112021-03-23 23:09:04167 "//ui/base/dragdrop:types",
Henrique Ferreiroa1f22d62021-02-12 17:32:20168 "//ui/base/dragdrop/mojom",
Jun Mukaia446ee7f2018-07-20 22:55:15169 "//ui/base/ime",
Timothy Loh3fc540082023-04-05 04:09:47170 "//ui/base/ime/ash",
revemanb195f41d2015-11-19 22:16:48171 "//ui/compositor",
Tommy C. Li092c628a2018-03-29 20:32:15172 "//ui/compositor_extra",
kylechar731f85f92016-12-01 20:50:46173 "//ui/display/manager",
yhanada5d5b8cb52016-12-10 04:16:02174 "//ui/events/devices:devices",
Michael Spang4305feb42019-11-20 18:24:27175 "//ui/events/ozone",
Eriko Kurimotod02f7052022-11-29 01:23:15176 "//ui/events/ozone/layout",
revemanb195f41d2015-11-19 22:16:48177 "//ui/gfx",
178 "//ui/gfx/geometry",
179 "//ui/gl",
Toshiki Kikuchi7c2894d2018-10-10 01:02:09180 "//ui/message_center",
181 "//ui/message_center/public/cpp",
Jingkui Wang9ec45ba2017-09-12 21:27:48182 "//ui/ozone",
revemanb195f41d2015-11-19 22:16:48183 "//ui/views",
skycea631e2016-12-16 21:52:22184 "//ui/wm",
Thiago Farina3b086a02017-05-30 22:32:50185 "//ui/wm/public",
revemanb195f41d2015-11-19 22:16:48186 ]
erosky9f31b772016-10-04 01:10:16187
Mitsuru Oshima19d909272020-06-26 19:13:15188 assert_no_deps = [
Yao Li5a6b8422021-12-03 03:23:25189 "//ash/components/arc",
Mitsuru Oshima19d909272020-06-26 19:13:15190 "//components/arc",
191 "//content/public/browser",
192 "//content/public/common",
193 ]
194
Henrique Ferreiro3a6bd7c72020-02-27 09:51:20195 public_deps = [
Henrique Ferreiro5a79d8662021-12-07 14:56:42196 "//ui/base/cursor",
Henrique Ferreiroe09c0efd2020-05-07 14:29:46197 "//ui/base/cursor/mojom:cursor_type",
Henrique Ferreiro1748fd12020-08-04 12:51:46198 "//ui/base/dragdrop/mojom:mojom_headers",
Henrique Ferreiro3a6bd7c72020-02-27 09:51:20199 ]
Henrique Ferreirob43235cf2020-02-27 01:05:36200
Eriko Kurimotod02f7052022-11-29 01:23:15201 if (use_xkbcommon) {
202 configs += [ ":xkbcommon" ]
erosky9f31b772016-10-04 01:10:16203 }
revemanb195f41d2015-11-19 22:16:48204}
205
206source_set("test_support") {
207 testonly = true
208
Daniel Nicoara3e65fb52018-12-05 22:02:46209 sources = [
yjliu00982d22020-10-14 00:31:12210 "mock_vsync_timing_observer.cc",
211 "mock_vsync_timing_observer.h",
Eriko Kurimotod02f7052022-11-29 01:23:15212 "test/exo_test_base.cc",
213 "test/exo_test_base.h",
Eriko Kurimotod02f7052022-11-29 01:23:15214 "test/exo_test_data_exchange_delegate.cc",
215 "test/exo_test_data_exchange_delegate.h",
216 "test/exo_test_helper.cc",
217 "test/exo_test_helper.h",
Daniel Nicoara332761202018-12-10 20:00:59218 "test/exo_test_suite_aura.cc",
219 "test/exo_test_suite_aura.h",
Nicholas Hollingumfb87b822022-07-20 01:08:26220 "test/mock_security_delegate.cc",
221 "test/mock_security_delegate.h",
Eriko Kurimotod02f7052022-11-29 01:23:15222 "test/shell_surface_builder.cc",
223 "test/shell_surface_builder.h",
Yuzhu Shenc5cd21e2023-02-20 01:15:05224 "test/surface_tree_host_test_util.cc",
225 "test/surface_tree_host_test_util.h",
Mitsuru Oshimad3f5d462023-11-14 02:16:58226 "test/test_data_device_delegate.cc",
227 "test/test_data_device_delegate.h",
Mitsuru Oshima5eb13a12022-08-01 16:54:41228 "test/test_security_delegate.cc",
229 "test/test_security_delegate.h",
Daniel Nicoara3e65fb52018-12-05 22:02:46230 ]
231
Mirko Bonadei1c098b882020-03-07 04:46:03232 public_deps = [ "//testing/gtest" ]
233
revemanb195f41d2015-11-19 22:16:48234 deps = [
penghuang608523d42016-08-18 17:05:28235 ":exo",
Eriko Kurimotod02f7052022-11-29 01:23:15236 "//ash:test_support",
237 "//ash/public/cpp",
revemanb195f41d2015-11-19 22:16:48238 "//base",
Daniel Nicoara332761202018-12-10 20:00:59239 "//base/test:test_support",
Eriko Kurimotod02f7052022-11-29 01:23:15240 "//chromeos/ui/base",
Max Ihlenfeldta4e9a572022-12-08 10:04:46241 "//components/exo/wayland:ui_controls_protocol_stub",
kylechara4a664e62020-01-15 18:46:44242 "//components/viz/service",
brettw15764b12015-11-30 22:11:05243 "//gpu",
revemanb195f41d2015-11-19 22:16:48244 "//skia",
brettw15764b12015-11-30 22:11:05245 "//ui/aura",
Henrique Ferreiroa1f22d62021-02-12 17:32:20246 "//ui/base/dragdrop/mojom",
Michael Spang539c6f32019-04-03 19:08:52247 "//ui/base/ime/init",
brettw15764b12015-11-30 22:11:05248 "//ui/compositor",
Daniel Nicoaraec62bcf42018-12-05 21:22:42249 "//ui/compositor:test_support",
250 "//ui/display/manager",
brettw15764b12015-11-30 22:11:05251 "//ui/gfx/geometry",
Daniel Nicoara332761202018-12-10 20:00:59252 "//ui/gl:test_support",
denniskempin31a496e2016-12-17 00:20:57253 "//ui/views",
Peter Kastingb2600ae32019-05-14 04:42:25254 "//ui/views:test_support",
Thiago Farina3b086a02017-05-30 22:32:50255 "//ui/wm",
revemanb195f41d2015-11-19 22:16:48256 ]
revemanb195f41d2015-11-19 22:16:48257}
258
259source_set("unit_tests") {
260 testonly = true
261
Eriko Kurimotod02f7052022-11-29 01:23:15262 sources = [
263 "../../ui/events/ozone/gamepad/gamepad_event.cc",
264 "buffer_unittest.cc",
265 "client_controlled_shell_surface_unittest.cc",
266 "data_device_unittest.cc",
267 "data_offer_unittest.cc",
268 "data_source_unittest.cc",
269 "display_unittest.cc",
270 "drag_drop_operation_unittest.cc",
271 "event_latency_metrics_unittest.cc",
272 "extended_drag_source_unittest.cc",
273 "gamepad_unittest.cc",
274 "gaming_seat_unittest.cc",
275 "input_method_surface_unittest.cc",
276 "keyboard_unittest.cc",
277 "mime_utils_unittest.cc",
278 "notification_unittest.cc",
279 "permission_unittest.cc",
280 "pointer_unittest.cc",
281 "seat_unittest.cc",
282 "shared_memory_unittest.cc",
283 "shell_surface_presentation_time_recorder_unittest.cc",
284 "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",
307 "//ash/public/cpp/external_arc",
brettw15764b12015-11-30 22:11:05308 "//base",
denniskempin68de18242016-07-14 00:04:59309 "//base/test:test_support",
brettw15764b12015-11-30 22:11:05310 "//cc",
eseckler599d86bb2017-03-15 09:02:55311 "//cc:test_support",
Kramer Gefae2abd52023-07-20 05:48:54312 "//cc/mojo_embedder:mojo_embedder",
Yuki Awano64ec451f2023-05-09 04:07:57313 "//chromeos/ash/components/login/auth",
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 Samuel764e0a42017-07-13 22:35:44321 "//components/viz/service",
Fady Samuelc296f5fb2017-07-21 04:02:19322 "//components/viz/test:test_support",
denniskempin68de18242016-07-14 00:04:59323 "//device/gamepad:test_helpers",
Daniele Castagnaa8ace632019-04-03 18:01:29324 "//gpu/command_buffer/client:raster_interface",
revemanb195f41d2015-11-19 22:16:48325 "//skia",
reveman39b32c872015-12-08 05:34:05326 "//testing/gmock",
revemanb195f41d2015-11-19 22:16:48327 "//testing/gtest",
brettw15764b12015-11-30 22:11:05328 "//ui/aura",
Eliot Courtneyb97953e2023-10-26 04:46:39329 "//ui/aura:test_support",
Eriko Kurimotod02f7052022-11-29 01:23:15330 "//ui/base:test_support",
331 "//ui/base/cursor/mojom:cursor_type",
332 "//ui/base/dragdrop:types",
333 "//ui/base/dragdrop/mojom",
334 "//ui/base/ime/ash",
Alex Zhang3f8482b2017-08-01 15:16:24335 "//ui/compositor:test_support",
Tommy C. Li092c628a2018-03-29 20:32:15336 "//ui/compositor_extra",
reveman5cacf70c2015-12-09 22:50:02337 "//ui/events:dom_keycode_converter",
reveman39b32c872015-12-08 05:34:05338 "//ui/events:test_support",
Michael Spang4305feb42019-11-20 18:24:27339 "//ui/events/ozone",
brettw15764b12015-11-30 22:11:05340 "//ui/gfx",
Eriko Kurimotod02f7052022-11-29 01:23:15341 "//ui/gfx:test_support",
342 "//ui/gfx/geometry",
Mitsuru Oshimad3f5d462023-11-14 02:16:58343 "//ui/gl:test_support",
revemanb195f41d2015-11-19 22:16:48344 "//ui/message_center",
brettw15764b12015-11-30 22:11:05345 "//ui/views",
skycea631e2016-12-16 21:52:22346 "//ui/wm",
revemanb195f41d2015-11-19 22:16:48347 ]
revemanb195f41d2015-11-19 22:16:48348}
349
350test("exo_unittests") {
Dirk Pranke79d065d2020-08-29 03:28:30351 use_xvfb = use_xvfb_in_this_config
352
Nico Weber5b5acd82020-01-13 19:55:59353 sources = [ "test/run_all_unittests.cc" ]
oshima2a44e112016-06-23 17:59:18354
revemanb195f41d2015-11-19 22:16:48355 deps = [
Daniel Nicoara332761202018-12-10 20:00:59356 ":test_support",
revemanb195f41d2015-11-19 22:16:48357 ":unit_tests",
brettw15764b12015-11-30 22:11:05358 "//base",
359 "//base/test:test_support",
Scott Violet260dabf2017-07-14 17:17:51360 "//cc:test_support",
Eriko Kurimotod02f7052022-11-29 01:23:15361 "//chromeos/ash/components:test_support",
362 "//components/exo/server:unit_tests",
363 "//components/exo/wayland:unit_tests",
Scott Violet260dabf2017-07-14 17:17:51364 "//components/viz/test:test_support",
denniskempin68de18242016-07-14 00:04:59365 "//device/gamepad:test_helpers",
Ken Rockot9b26bc52018-07-04 19:57:49366 "//mojo/core/embedder",
skyd06586d2017-02-22 17:46:36367 "//testing/gtest",
368 "//ui/aura",
Scott Violet348ecf72017-11-28 18:28:19369 "//ui/aura:test_support",
skyd06586d2017-02-22 17:46:36370 "//ui/base",
sky25b49b282017-03-31 14:41:13371 "//ui/compositor:test_support",
skyd06586d2017-02-22 17:46:36372 "//ui/gl:test_support",
revemanb195f41d2015-11-19 22:16:48373 ]
oshima2a44e112016-06-23 17:59:18374
Steven Bennetts6972bbe2018-12-05 02:18:53375 data_deps = []
revemanb195f41d2015-11-19 22:16:48376}