chromium/ui/linux/BUILD.gn

# Copyright 2022 The Chromium Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

import("//build/config/linux/gtk/gtk.gni")
import("//ui/qt/qt.gni")

assert(is_linux)

component("linux_ui") {
  defines = [ "IS_LINUX_UI_IMPL" ]
  public = [
    "cursor_theme_manager_observer.h",
    "device_scale_factor_observer.h",
    "linux_ui.h",
    "linux_ui_delegate.h",
    "linux_ui_delegate_stub.h",
    "linux_ui_getter.h",
    "nav_button_provider.h",
    "status_icon_linux.h",
    "window_button_order_observer.h",
    "window_frame_provider.h",
  ]
  sources = [
    "linux_ui.cc",
    "linux_ui_delegate.cc",
    "linux_ui_delegate_stub.cc",
    "linux_ui_getter.cc",
    "status_icon_linux.cc",
  ]
  deps = [
    "//base",
    "//ui/base:types",
    "//ui/display/types",
    "//ui/gfx/geometry",
  ]
  public_deps = [ "//printing/buildflags" ]
}

component("linux_ui_factory") {
  defines = [ "IS_LINUX_UI_FACTORY_IMPL" ]
  public = [ "linux_ui_factory.h" ]
  sources = [
    "fallback_linux_ui.cc",
    "fallback_linux_ui.h",
    "linux_ui_factory.cc",
  ]

  public_deps = [
    ":linux_ui",
    "//ui/color:color_headers",
  ]

  deps = [
    "//base",
    "//ui/base",
    "//ui/base/ime/linux:linux",
    "//ui/events:dom_keyboard_layout",
    "//ui/gfx",
    "//ui/native_theme",
    "//ui/shell_dialogs",
    "//ui/views",
  ]
  if (use_gtk) {
    # This is the only component that can interact with gtk.
    deps += [ "//ui/gtk" ]
  }
  if (use_qt) {
    deps += [ "//ui/qt" ]
  }
}

source_set("display_server_utils") {
  sources = [
    "display_server_utils.cc",
    "display_server_utils.h",
  ]
  deps = [
    "//base",
    "//third_party/angle:angle_gpu_info_util",
    "//ui/base:features",
    "//ui/base:ozone_buildflags",
    "//ui/ozone",
  ]
}

source_set("test_support") {
  testonly = true

  public = [ "fake_linux_ui.h" ]
  sources = [ "fake_linux_ui.cc" ]

  public_deps = [ ":linux_ui" ]
  deps = [
    "//base",
    "//skia",
    "//ui/base/ime/linux",
    "//ui/gfx",
    "//ui/native_theme",
    "//ui/shell_dialogs",
  ]
}