123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179 |
- # 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.
- import("//build/config/chromeos/ui_mode.gni")
- import("//build/config/features.gni")
- import("//build/config/linux/gtk/gtk.gni")
- import("//build/config/linux/pkg_config.gni")
- import("//build/config/ozone.gni")
- import("//build/config/ui.gni")
- import("//printing/buildflags/buildflags.gni")
- import("//testing/test.gni")
- import("//tools/generate_stubs/rules.gni")
- assert(is_linux || is_chromeos_lacros || is_chromeos,
- "This file should only be referenced on Linux")
- assert(use_gio, "GIO is required for building with GTK")
- source_set("gtk_types") {
- visibility = [ ":gtk_stubs" ]
- public = [ "gtk_types.h" ]
- }
- pkg_config("gtk_internal_config") {
- # We dlopen() GTK, so make sure not to add a link-time dependency on it.
- ignore_libs = true
- # Gtk requires gmodule, but it does not list it as a dependency in some
- # misconfigured systems.
- packages = [
- "gmodule-2.0",
- "gthread-2.0",
- ]
- if (gtk_version == 3) {
- packages += [
- "gtk+-3.0",
- "gtk+-unix-print-3.0",
- ]
- } else {
- assert(gtk_version == 4)
- packages += [
- "gtk4",
- "gtk4-unix-print",
- ]
- }
- }
- group("gtk_config") {
- public_configs = [ ":gtk_internal_config" ]
- }
- generate_stubs("gtk_stubs") {
- visibility = [ ":gtk" ]
- sigs = [
- "gdk_pixbuf.sigs",
- "gdk.sigs",
- "gsk.sigs",
- "gtk.sigs",
- "gio.sigs",
- ]
- extra_header = "gtk.fragment"
- output_name = "gtk_stubs"
- public_deps = [
- ":gtk_config",
- ":gtk_types",
- ]
- logging_function = "LogNoop()"
- logging_include = "ui/gtk/log_noop.h"
- }
- component("gtk") {
- visibility = [ "//ui/linux:linux_ui_factory" ]
- public = [ "gtk_ui_factory.h" ]
- sources = [
- "gtk_color_mixers.cc",
- "gtk_color_mixers.h",
- "gtk_compat.cc",
- "gtk_compat.h",
- "gtk_key_bindings_handler.cc",
- "gtk_key_bindings_handler.h",
- "gtk_ui.cc",
- "gtk_ui.h",
- "gtk_ui_factory.cc",
- "gtk_ui_platform.h",
- "gtk_ui_platform_stub.cc",
- "gtk_ui_platform_stub.h",
- "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_linux_gtk.cc",
- "select_file_dialog_linux_gtk.h",
- "settings_provider.h",
- "settings_provider_gsettings.cc",
- "settings_provider_gsettings.h",
- "settings_provider_gtk.cc",
- "settings_provider_gtk.h",
- "window_frame_provider_gtk.cc",
- "window_frame_provider_gtk.h",
- ]
- defines = [ "IS_GTK_IMPL" ]
- configs += [
- "//build/config/linux/pangocairo",
- "//build/linux:gio_config",
- ]
- deps = [
- ":gtk_stubs",
- "//base",
- "//printing/buildflags",
- "//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.
- "//third_party:freetype_harfbuzz",
- "//ui/aura",
- "//ui/base",
- "//ui/base:buildflags",
- "//ui/base/ime",
- "//ui/base/ime/linux",
- "//ui/color",
- "//ui/color:mixers",
- "//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/linux:linux_ui_impl",
- "//ui/native_theme",
- "//ui/shell_dialogs",
- "//ui/strings",
- "//ui/views",
- "//url",
- ]
- if (enable_basic_printing) {
- deps += [ "//printing" ]
- }
- if (use_cups) {
- deps += [ "//printing/mojom" ]
- }
- if (ozone_platform_x11) {
- sources += [
- "x/gtk_event_loop_x11.cc",
- "x/gtk_event_loop_x11.h",
- "x/gtk_ui_platform_x11.cc",
- "x/gtk_ui_platform_x11.h",
- ]
- deps += [
- "//ui/base/x",
- "//ui/events/platform/x11",
- "//ui/gfx/x",
- ]
- }
- if (ozone_platform_wayland) {
- sources += [
- "wayland/gtk_ui_platform_wayland.cc",
- "wayland/gtk_ui_platform_wayland.h",
- ]
- }
- # TODO: This should be removed.
- deps += [ "//ui/ozone" ]
- }
|