# Copyright 2020 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. assert(is_linux || is_chromeos, "This file should only be referenced on Linux") import("//build/config/features.gni") import("//build/config/jumbo.gni") import("//build/config/linux/gtk/gtk.gni") import("//build/config/ozone.gni") import("//build/config/ui.gni") import("//printing/buildflags/buildflags.gni") component("gtk_ui_delegate") { public = [ "gtk_ui_delegate.h" ] sources = [ "gtk_ui_delegate.cc" ] deps = [ "//base", "//ui/gfx", ] defines = [ "IS_GTK_IMPL" ] } jumbo_component("gtk") { public = [ "gtk_ui.h" ] sources = [ "gtk_key_bindings_handler.cc", "gtk_key_bindings_handler.h", "gtk_ui.cc", "gtk_util.cc", "gtk_util.h", "input_method_context_impl_gtk.cc", "input_method_context_impl_gtk.h", "native_theme_gtk.cc", "native_theme_gtk.h", "nav_button_provider_gtk.cc", "nav_button_provider_gtk.h", "printing/print_dialog_gtk.cc", "printing/print_dialog_gtk.h", "printing/printing_gtk_util.cc", "printing/printing_gtk_util.h", "select_file_dialog_impl.cc", "select_file_dialog_impl.h", "select_file_dialog_impl_gtk.cc", "select_file_dialog_impl_gtk.h", "select_file_dialog_impl_kde.cc", "settings_provider.h", "settings_provider_gtk.cc", "settings_provider_gtk.h", ] defines = [ "IS_GTK_IMPL" ] configs += [ "//build/config/linux/pangocairo" ] if (use_gio) { sources += [ "settings_provider_gsettings.cc", "settings_provider_gsettings.h", ] configs += [ "//build/linux:gio_config" ] } if (use_cups) { configs += [ "//printing:cups" ] } deps = [ "//base", "//build/config/linux/gtk:gtkprint", "//printing", "//skia", # GTK pulls pangoft2, which requires HarfBuzz symbols. When linking # our own HarfBuzz avoid mixing symbols from system HarfBuzz and # our own through the indirect dependency to harfbuzz-ng here. "//build/config/linux/gtk", "//third_party:freetype_harfbuzz", "//ui/aura", "//ui/base", "//ui/base:buildflags", "//ui/base/cursor:theme_manager", "//ui/base/ime", "//ui/base/ime/linux", "//ui/display", "//ui/events", "//ui/events:dom_keyboard_layout", "//ui/events:dom_keycode_converter", "//ui/gfx", "//ui/gfx:native_widget_types", "//ui/gfx/geometry", "//ui/native_theme", "//ui/shell_dialogs", "//ui/strings", "//ui/views", ] if (use_cups) { deps += [ "//printing/mojom" ] } public_deps = [ ":gtk_ui_delegate" ] # TODO: This should be removed. if (use_ozone) { deps += [ "//ui/ozone" ] } }