# Copyright 2014 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. import("//build/config/linux/pkg_config.gni") import("//ui/ozone/ozone.gni") declare_args() { use_mesa_platform_null = false use_drm_atomic = false } pkg_config("libdrm") { packages = [ "libdrm" ] } source_set("drm_common") { sources = [ "common/drm_util.cc", "common/drm_util.h", "common/scoped_drm_types.cc", "common/scoped_drm_types.h", "gpu/crtc_controller.cc", "gpu/crtc_controller.h", "gpu/display_change_observer.h", "gpu/drm_buffer.cc", "gpu/drm_buffer.h", "gpu/drm_console_buffer.cc", "gpu/drm_console_buffer.h", "gpu/drm_device.cc", "gpu/drm_device.h", "gpu/drm_device_generator.cc", "gpu/drm_device_generator.h", "gpu/drm_device_manager.cc", "gpu/drm_device_manager.h", "gpu/drm_display.cc", "gpu/drm_display.h", "gpu/drm_gpu_display_manager.cc", "gpu/drm_gpu_display_manager.h", "gpu/drm_gpu_platform_support.cc", "gpu/drm_gpu_platform_support.h", "gpu/drm_surface.cc", "gpu/drm_surface.h", "gpu/drm_surface_factory.cc", "gpu/drm_surface_factory.h", "gpu/drm_vsync_provider.cc", "gpu/drm_vsync_provider.h", "gpu/drm_window.cc", "gpu/drm_window.h", "gpu/hardware_display_controller.cc", "gpu/hardware_display_controller.h", "gpu/hardware_display_plane.cc", "gpu/hardware_display_plane.h", "gpu/hardware_display_plane_manager.cc", "gpu/hardware_display_plane_manager.h", "gpu/hardware_display_plane_manager_legacy.cc", "gpu/hardware_display_plane_manager_legacy.h", "gpu/overlay_plane.cc", "gpu/overlay_plane.h", "gpu/page_flip_request.cc", "gpu/page_flip_request.h", "gpu/scanout_buffer.h", "gpu/screen_manager.cc", "gpu/screen_manager.h", "host/channel_observer.h", "host/drm_cursor.cc", "host/drm_cursor.h", "host/drm_device_handle.cc", "host/drm_device_handle.h", "host/drm_display_host.cc", "host/drm_display_host.h", "host/drm_display_host_manager.cc", "host/drm_display_host_manager.h", "host/drm_gpu_platform_support_host.cc", "host/drm_gpu_platform_support_host.h", "host/drm_native_display_delegate.cc", "host/drm_native_display_delegate.h", "host/drm_overlay_manager.cc", "host/drm_overlay_manager.h", "host/drm_window_host.cc", "host/drm_window_host.h", "host/drm_window_host_manager.cc", "host/drm_window_host_manager.h", ] defines = [ "OZONE_IMPLEMENTATION" ] if (use_drm_atomic) { defines += [ "USE_DRM_ATOMIC" ] sources += [ "gpu/hardware_display_plane_atomic.cc", "gpu/hardware_display_plane_atomic.h", "gpu/hardware_display_plane_manager_atomic.cc", "gpu/hardware_display_plane_manager_atomic.h", ] } deps = [ "//base", "//skia", "//ipc", "//ui/base", "//ui/display/types", "//ui/display/util", "//ui/events", "//ui/events/devices", "//ui/events/ozone:events_ozone_evdev", "//ui/events/ozone:events_ozone_layout", "//ui/events/platform", "//ui/gfx", "//ui/gfx/geometry", ] public_configs = [ ":libdrm" ] } if (ozone_platform_dri || ozone_platform_drm) { source_set("drm") { sources = [ "ozone_platform_drm.cc", "ozone_platform_drm.h", ] deps = [ ":drm_common", "//base", "//skia", "//ui/events/ozone:events_ozone_evdev", "//ui/events/ozone:events_ozone_layout", ] } source_set("drm_unittests") { testonly = true sources = [ "gpu/drm_surface_unittest.cc", "gpu/drm_window_unittest.cc", "gpu/hardware_display_controller_unittest.cc", "gpu/hardware_display_plane_manager_unittest.cc", "gpu/screen_manager_unittest.cc", "test/mock_drm_device.cc", "test/mock_drm_device.h", ] deps = [ "//skia", "//testing/gtest", "//ui/ozone", ] public_configs = [ ":libdrm" ] } } if (ozone_platform_gbm) { pkg_config("libgbm") { packages = [ "gbm" ] } source_set("gbm") { sources = [ "gpu/gbm_buffer.cc", "gpu/gbm_buffer.h", "gpu/gbm_buffer_base.cc", "gpu/gbm_buffer_base.h", "gpu/gbm_device.cc", "gpu/gbm_device.h", "gpu/gbm_surface.cc", "gpu/gbm_surface.h", "gpu/gbm_surface_factory.cc", "gpu/gbm_surface_factory.h", "gpu/gbm_surfaceless.cc", "gpu/gbm_surfaceless.h", "ozone_platform_gbm.cc", "ozone_platform_gbm.h", ] deps = [ ":drm_common", "//base", "//skia", "//ui/events/ozone:events_ozone_evdev", "//ui/events/ozone:events_ozone_layout", ] public_configs = [ ":libgbm", "//third_party/khronos:khronos_headers", ] if (use_mesa_platform_null) { defines += [ "USE_MESA_PLATFORM_NULL" ] } } }