| # Copyright 2016 The Chromium Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| visibility = [ "//ui/ozone/*" ] |
| |
| import("//build/config/chromeos/ui_mode.gni") |
| import("//build/config/linux/gtk/gtk.gni") |
| import("//build/config/linux/pkg_config.gni") |
| import("//gpu/vulkan/features.gni") |
| import("//testing/libfuzzer/fuzzer_test.gni") |
| import("//third_party/wayland/features.gni") |
| import("//ui/ozone/platform/wayland/wayland.gni") |
| |
| source_set("wayland") { |
| sources = [ |
| "client_native_pixmap_factory_wayland.cc", |
| "client_native_pixmap_factory_wayland.h", |
| "common/data_util.cc", |
| "common/data_util.h", |
| "common/wayland.cc", |
| "common/wayland.h", |
| "common/wayland_object.cc", |
| "common/wayland_object.h", |
| "common/wayland_util.cc", |
| "common/wayland_util.h", |
| "gpu/drm_render_node_path_finder.cc", |
| "gpu/drm_render_node_path_finder.h", |
| "gpu/gl_surface_egl_readback_wayland.cc", |
| "gpu/gl_surface_egl_readback_wayland.h", |
| "gpu/gl_surface_wayland.cc", |
| "gpu/gl_surface_wayland.h", |
| "gpu/wayland_buffer_manager_gpu.cc", |
| "gpu/wayland_buffer_manager_gpu.h", |
| "gpu/wayland_canvas_surface.cc", |
| "gpu/wayland_canvas_surface.h", |
| "gpu/wayland_overlay_candidates.cc", |
| "gpu/wayland_overlay_candidates.h", |
| "gpu/wayland_overlay_manager.cc", |
| "gpu/wayland_overlay_manager.h", |
| "gpu/wayland_surface_factory.cc", |
| "gpu/wayland_surface_factory.h", |
| "gpu/wayland_surface_gpu.h", |
| "host/gtk_primary_selection_device.cc", |
| "host/gtk_primary_selection_device.h", |
| "host/gtk_primary_selection_device_manager.cc", |
| "host/gtk_primary_selection_device_manager.h", |
| "host/gtk_primary_selection_offer.cc", |
| "host/gtk_primary_selection_offer.h", |
| "host/shell_object_factory.cc", |
| "host/shell_object_factory.h", |
| "host/shell_popup_wrapper.cc", |
| "host/shell_popup_wrapper.h", |
| "host/shell_surface_wrapper.h", |
| "host/shell_toplevel_wrapper.cc", |
| "host/shell_toplevel_wrapper.h", |
| "host/wayland_auxiliary_window.cc", |
| "host/wayland_auxiliary_window.h", |
| "host/wayland_buffer_manager_connector.cc", |
| "host/wayland_buffer_manager_connector.h", |
| "host/wayland_buffer_manager_host.cc", |
| "host/wayland_buffer_manager_host.h", |
| "host/wayland_clipboard.cc", |
| "host/wayland_clipboard.h", |
| "host/wayland_connection.cc", |
| "host/wayland_connection.h", |
| "host/wayland_cursor.cc", |
| "host/wayland_cursor.h", |
| "host/wayland_cursor_position.cc", |
| "host/wayland_cursor_position.h", |
| "host/wayland_data_device.cc", |
| "host/wayland_data_device.h", |
| "host/wayland_data_device_base.cc", |
| "host/wayland_data_device_base.h", |
| "host/wayland_data_device_manager.cc", |
| "host/wayland_data_device_manager.h", |
| "host/wayland_data_drag_controller.cc", |
| "host/wayland_data_drag_controller.h", |
| "host/wayland_data_offer.cc", |
| "host/wayland_data_offer.h", |
| "host/wayland_data_offer_base.cc", |
| "host/wayland_data_offer_base.h", |
| "host/wayland_data_source.cc", |
| "host/wayland_data_source.h", |
| "host/wayland_drm.cc", |
| "host/wayland_drm.h", |
| "host/wayland_event_source.cc", |
| "host/wayland_event_source.h", |
| "host/wayland_event_watcher.cc", |
| "host/wayland_event_watcher.h", |
| "host/wayland_input_method_context.cc", |
| "host/wayland_input_method_context.h", |
| "host/wayland_input_method_context_factory.cc", |
| "host/wayland_input_method_context_factory.h", |
| "host/wayland_keyboard.cc", |
| "host/wayland_keyboard.h", |
| "host/wayland_menu_utils.cc", |
| "host/wayland_menu_utils.h", |
| "host/wayland_output.cc", |
| "host/wayland_output.h", |
| "host/wayland_output_manager.cc", |
| "host/wayland_output_manager.h", |
| "host/wayland_pointer.cc", |
| "host/wayland_pointer.h", |
| "host/wayland_popup.cc", |
| "host/wayland_popup.h", |
| "host/wayland_screen.cc", |
| "host/wayland_screen.h", |
| "host/wayland_shm.cc", |
| "host/wayland_shm.h", |
| "host/wayland_shm_buffer.cc", |
| "host/wayland_shm_buffer.h", |
| "host/wayland_subsurface.cc", |
| "host/wayland_subsurface.h", |
| "host/wayland_surface.cc", |
| "host/wayland_surface.h", |
| "host/wayland_toplevel_window.cc", |
| "host/wayland_toplevel_window.h", |
| "host/wayland_touch.cc", |
| "host/wayland_touch.h", |
| "host/wayland_window.cc", |
| "host/wayland_window.h", |
| "host/wayland_window_drag_controller.cc", |
| "host/wayland_window_drag_controller.h", |
| "host/wayland_window_factory.cc", |
| "host/wayland_window_manager.cc", |
| "host/wayland_window_manager.h", |
| "host/wayland_window_observer.cc", |
| "host/wayland_window_observer.h", |
| "host/wayland_zaura_shell.cc", |
| "host/wayland_zaura_shell.h", |
| "host/wayland_zcr_cursor_shapes.cc", |
| "host/wayland_zcr_cursor_shapes.h", |
| "host/wayland_zwp_linux_dmabuf.cc", |
| "host/wayland_zwp_linux_dmabuf.h", |
| "host/xdg_foreign_wrapper.cc", |
| "host/xdg_foreign_wrapper.h", |
| "host/xdg_popup_wrapper_impl.cc", |
| "host/xdg_popup_wrapper_impl.h", |
| "host/xdg_surface_wrapper_impl.cc", |
| "host/xdg_surface_wrapper_impl.h", |
| "host/xdg_toplevel_wrapper_impl.cc", |
| "host/xdg_toplevel_wrapper_impl.h", |
| "host/zwp_primary_selection_device.cc", |
| "host/zwp_primary_selection_device.h", |
| "host/zwp_primary_selection_device_manager.cc", |
| "host/zwp_primary_selection_device_manager.h", |
| "host/zwp_primary_selection_offer.cc", |
| "host/zwp_primary_selection_offer.h", |
| "host/zwp_text_input_wrapper.h", |
| "host/zwp_text_input_wrapper_v1.cc", |
| "host/zwp_text_input_wrapper_v1.h", |
| "host/zxdg_popup_v6_wrapper_impl.cc", |
| "host/zxdg_popup_v6_wrapper_impl.h", |
| "host/zxdg_surface_v6_wrapper_impl.cc", |
| "host/zxdg_surface_v6_wrapper_impl.h", |
| "host/zxdg_toplevel_v6_wrapper_impl.cc", |
| "host/zxdg_toplevel_v6_wrapper_impl.h", |
| "ozone_platform_wayland.cc", |
| "ozone_platform_wayland.h", |
| ] |
| |
| import("//ui/base/ui_features.gni") |
| if (use_xkbcommon) { |
| configs += [ "//ui/events/ozone/layout:xkbcommon" ] |
| } |
| |
| deps = [ |
| "//base", |
| "//build:chromeos_buildflags", |
| "//build/config/linux/libdrm", |
| "//components/exo/wayland/protocol:aura_shell_protocol", |
| "//mojo/public/cpp/bindings", |
| "//mojo/public/cpp/system", |
| "//skia", |
| "//third_party/wayland-protocols:cursor_shapes_protocol", |
| "//third_party/wayland-protocols:extended_drag", |
| "//third_party/wayland-protocols:gtk_primary_selection_protocol", |
| "//third_party/wayland-protocols:keyboard_extension_protocol", |
| "//third_party/wayland-protocols:linux_dmabuf_protocol", |
| "//third_party/wayland-protocols:linux_explicit_synchronization_protocol", |
| "//third_party/wayland-protocols:presentation_time_protocol", |
| "//third_party/wayland-protocols:primary_selection_protocol", |
| "//third_party/wayland-protocols:text_input_protocol", |
| "//third_party/wayland-protocols:viewporter_protocol", |
| "//third_party/wayland-protocols:wayland_drm_protocol", |
| "//third_party/wayland-protocols:xdg_decoration_protocol", |
| "//third_party/wayland-protocols:xdg_foreign", |
| "//third_party/wayland-protocols:xdg_shell_protocol", |
| "//ui/base", |
| "//ui/base:buildflags", |
| "//ui/base/cursor", |
| "//ui/base/cursor:cursor_base", |
| "//ui/base/cursor/mojom:cursor_type", |
| "//ui/base/ime/linux", |
| "//ui/events", |
| "//ui/events:dom_keycode_converter", |
| "//ui/events/keycodes:xkb", |
| "//ui/events/ozone", |
| "//ui/events/ozone/evdev", |
| "//ui/events/ozone/layout", |
| "//ui/events/platform", |
| "//ui/gfx", |
| "//ui/gfx:memory_buffer", |
| "//ui/gfx/geometry", |
| "//ui/gfx/linux:drm", |
| "//ui/ozone:ozone_base", |
| "//ui/ozone/common", |
| "//ui/ozone/public/mojom/wayland:wayland_mojom", |
| "//ui/platform_window", |
| "//ui/platform_window/wm", |
| ] |
| |
| if (is_linux || is_chromeos_lacros) { |
| deps += [ "//ui/base/ime/linux" ] |
| } |
| |
| if (use_gtk) { |
| sources += [ |
| "host/gtk_ui_delegate_wayland.cc", |
| "host/gtk_ui_delegate_wayland.h", |
| ] |
| deps += [ |
| "//build/config/linux/gtk", |
| "//ui/gtk:gtk_ui_delegate", |
| ] |
| } |
| |
| if (is_chromeos_lacros) { |
| deps += [ |
| "//chromeos/crosapi/cpp", |
| "//chromeos/crosapi/mojom", |
| "//chromeos/lacros", |
| ] |
| } |
| |
| defines = [ "OZONE_IMPLEMENTATION" ] |
| |
| if (use_system_libwayland) { |
| defines += [ "USE_LIBWAYLAND_STUBS" ] |
| deps += [ "//third_party/wayland:wayland_stubs" ] |
| } else { |
| deps += [ |
| "//third_party/wayland:wayland_client", |
| "//third_party/wayland:wayland_egl", |
| ] |
| } |
| |
| if (use_wayland_gbm) { |
| defines += [ "WAYLAND_GBM" ] |
| sources += [ |
| "gpu/drm_render_node_handle.cc", |
| "gpu/drm_render_node_handle.h", |
| "gpu/gbm_pixmap_wayland.cc", |
| "gpu/gbm_pixmap_wayland.h", |
| "gpu/gbm_surfaceless_wayland.cc", |
| "gpu/gbm_surfaceless_wayland.h", |
| ] |
| |
| deps += [ |
| "//third_party/minigbm", |
| "//ui/gfx:memory_buffer", |
| "//ui/gfx/linux:gbm", |
| ] |
| } |
| |
| if (use_bundled_weston) { |
| data_deps = [ "//third_party/weston" ] |
| } |
| |
| if (enable_vulkan) { |
| sources += [ |
| "gpu/vulkan_implementation_wayland.cc", |
| "gpu/vulkan_implementation_wayland.h", |
| ] |
| deps += [ "//gpu/vulkan" ] |
| } |
| |
| configs += [ "//third_party/khronos:khronos_headers" ] |
| } |
| |
| source_set("test_support") { |
| testonly = true |
| |
| sources = [ |
| "host/wayland_connection_test_api.h", |
| "test/global_object.cc", |
| "test/global_object.h", |
| "test/mock_buffer.cc", |
| "test/mock_buffer.h", |
| "test/mock_pointer.cc", |
| "test/mock_pointer.h", |
| "test/mock_surface.cc", |
| "test/mock_surface.h", |
| "test/mock_wp_presentation.cc", |
| "test/mock_wp_presentation.h", |
| "test/mock_xdg_shell.cc", |
| "test/mock_xdg_shell.h", |
| "test/mock_xdg_surface.cc", |
| "test/mock_xdg_surface.h", |
| "test/mock_zwp_linux_dmabuf.cc", |
| "test/mock_zwp_linux_dmabuf.h", |
| "test/mock_zwp_text_input.cc", |
| "test/mock_zwp_text_input.h", |
| "test/scoped_wl_array.cc", |
| "test/scoped_wl_array.h", |
| "test/server_object.cc", |
| "test/server_object.h", |
| "test/test_compositor.cc", |
| "test/test_compositor.h", |
| "test/test_data_device.cc", |
| "test/test_data_device.h", |
| "test/test_data_device_manager.cc", |
| "test/test_data_device_manager.h", |
| "test/test_data_offer.cc", |
| "test/test_data_offer.h", |
| "test/test_data_source.cc", |
| "test/test_data_source.h", |
| "test/test_keyboard.cc", |
| "test/test_keyboard.h", |
| "test/test_output.cc", |
| "test/test_output.h", |
| "test/test_positioner.cc", |
| "test/test_positioner.h", |
| "test/test_region.cc", |
| "test/test_region.h", |
| "test/test_seat.cc", |
| "test/test_seat.h", |
| "test/test_subcompositor.cc", |
| "test/test_subcompositor.h", |
| "test/test_subsurface.cc", |
| "test/test_subsurface.h", |
| "test/test_touch.cc", |
| "test/test_touch.h", |
| "test/test_viewport.cc", |
| "test/test_viewport.h", |
| "test/test_viewporter.cc", |
| "test/test_viewporter.h", |
| "test/test_wayland_server_thread.cc", |
| "test/test_wayland_server_thread.h", |
| "test/test_xdg_popup.cc", |
| "test/test_xdg_popup.h", |
| "test/test_zwp_linux_buffer_params.cc", |
| "test/test_zwp_linux_buffer_params.h", |
| "test/test_zwp_text_input_manager.cc", |
| "test/test_zwp_text_input_manager.h", |
| ] |
| |
| deps = [ |
| ":wayland", |
| "//base:base", |
| "//ui/ozone:platform", |
| ] |
| |
| public_deps = [ |
| "//skia", |
| "//testing/gmock", |
| "//third_party/wayland:wayland_server", |
| "//third_party/wayland-protocols:linux_dmabuf_protocol", |
| "//third_party/wayland-protocols:presentation_time_protocol", |
| "//third_party/wayland-protocols:text_input_protocol", |
| "//third_party/wayland-protocols:viewporter_protocol", |
| "//third_party/wayland-protocols:xdg_shell_protocol", |
| "//ui/gfx/geometry:geometry", |
| ] |
| } |
| |
| source_set("wayland_unittests") { |
| testonly = true |
| |
| sources = [ |
| "gpu/wayland_overlay_manager_unittest.cc", |
| "host/wayland_connection_unittest.cc", |
| "host/wayland_data_device_unittest.cc", |
| "host/wayland_data_drag_controller_unittest.cc", |
| "host/wayland_event_source_unittest.cc", |
| "host/wayland_input_method_context_unittest.cc", |
| "host/wayland_keyboard_unittest.cc", |
| "host/wayland_pointer_unittest.cc", |
| "host/wayland_screen_unittest.cc", |
| "host/wayland_touch_unittest.cc", |
| "host/wayland_window_drag_controller_unittest.cc", |
| "host/wayland_window_manager_unittests.cc", |
| "host/wayland_window_unittest.cc", |
| "host/wayland_zaura_shell_unittest.cc", |
| "test/wayland_test.cc", |
| "test/wayland_test.h", |
| ] |
| |
| deps = [ |
| ":test_support", |
| ":wayland", |
| "//components/exo/wayland/protocol:aura_shell_protocol", |
| "//testing/gmock", |
| "//testing/gtest", |
| "//third_party/wayland:wayland_server", |
| "//third_party/wayland-protocols:cursor_shapes_protocol", |
| "//third_party/wayland-protocols:keyboard_extension_protocol", |
| "//third_party/wayland-protocols:linux_dmabuf_protocol", |
| "//third_party/wayland-protocols:text_input_protocol", |
| "//third_party/wayland-protocols:xdg_shell_protocol", |
| "//ui/base", |
| "//ui/base:buildflags", |
| "//ui/base/cursor", |
| "//ui/base/ime/linux", |
| "//ui/events/ozone/layout", |
| "//ui/gfx/linux:test_support", |
| "//ui/ozone:platform", |
| "//ui/ozone:test_support", |
| "//ui/ozone/common", |
| "//ui/platform_window/wm", |
| ] |
| |
| import("//ui/base/ui_features.gni") |
| if (use_xkbcommon) { |
| deps += [ "//ui/events/keycodes:xkb" ] |
| } |
| |
| defines = [ "WL_HIDE_DEPRECATED" ] |
| |
| if (use_wayland_gbm) { |
| sources += [ |
| "gpu/wayland_surface_factory_unittest.cc", |
| "wayland_buffer_manager_unittest.cc", |
| ] |
| deps += [ |
| "//build/config/linux/libdrm", |
| "//ui/gfx/linux:drm", |
| "//ui/gfx/linux:gbm", |
| ] |
| defines += [ "WAYLAND_GBM" ] |
| } |
| } |
| |
| fuzzer_test("wayland_buffer_fuzzer") { |
| defines = [ "WL_HIDE_DEPRECATED" ] |
| sources = [ "fuzzer/wayland_buffer_fuzzer.cc" ] |
| deps = [ |
| ":test_support", |
| ":wayland", |
| "//base/test:test_support", |
| "//build/config/linux/libdrm", |
| "//mojo/core/embedder", |
| "//mojo/public/cpp/system", |
| "//ui/gfx:test_support", |
| "//ui/platform_window:platform_window", |
| ] |
| } |