| Index: chrome/browser/ui/libgtkui/BUILD.gn
|
| diff --git a/chrome/browser/ui/libgtkui/BUILD.gn b/chrome/browser/ui/libgtkui/BUILD.gn
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..d970a80b5461c203fe5c38654378039314d5f165
|
| --- /dev/null
|
| +++ b/chrome/browser/ui/libgtkui/BUILD.gn
|
| @@ -0,0 +1,149 @@
|
| +# 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.
|
| +
|
| +assert(is_linux, "This file should only be referenced on Linux")
|
| +
|
| +import("//build/config/features.gni")
|
| +import("//build/config/ui.gni")
|
| +
|
| +# gn orders flags on a target before flags from configs. The default config
|
| +# adds -Wall, and these flags have to be after -Wall -- so they need to come
|
| +# from a config and can't be on the target directly.
|
| +config("libgtkui_warnings") {
|
| + if (is_clang) {
|
| + cflags = [
|
| + # G_DEFINE_TYPE automatically generates a *get_instance_private inline
|
| + # function after glib 2.37. That's unused. Prevent to complain about it.
|
| + "-Wno-unused-function",
|
| +
|
| + # G_STATIC_ASSERT uses a typedef as a static_assert.
|
| + "-Wno-unused-local-typedef",
|
| + ]
|
| + }
|
| +}
|
| +
|
| +common_sources = [
|
| + "app_indicator_icon.cc",
|
| + "app_indicator_icon.h",
|
| + "app_indicator_icon_menu.cc",
|
| + "app_indicator_icon_menu.h",
|
| + "chrome_gtk_frame.cc",
|
| + "chrome_gtk_frame.h",
|
| + "chrome_gtk_menu_subclasses.cc",
|
| + "chrome_gtk_menu_subclasses.h",
|
| + "gtk2_event_loop.cc",
|
| + "gtk2_event_loop.h",
|
| + "gtk2_key_bindings_handler.cc",
|
| + "gtk2_key_bindings_handler.h",
|
| + "gtk2_status_icon.cc",
|
| + "gtk2_status_icon.h",
|
| + "gtk2_ui.cc",
|
| + "gtk2_ui.h",
|
| + "gtk2_util.cc",
|
| + "gtk2_util.h",
|
| + "libgtkui_export.h",
|
| + "menu_util.cc",
|
| + "menu_util.h",
|
| + "native_theme_gtk2.cc",
|
| + "native_theme_gtk2.h",
|
| + "print_dialog_gtk2.cc",
|
| + "print_dialog_gtk2.h",
|
| + "printing_gtk2_util.cc",
|
| + "printing_gtk2_util.h",
|
| + "select_file_dialog_impl.cc",
|
| + "select_file_dialog_impl.h",
|
| + "select_file_dialog_impl_gtk2.cc",
|
| + "select_file_dialog_impl_gtk2.h",
|
| + "select_file_dialog_impl_kde.cc",
|
| + "skia_utils_gtk2.cc",
|
| + "skia_utils_gtk2.h",
|
| + "unity_service.cc",
|
| + "unity_service.h",
|
| + "x11_input_method_context_impl_gtk2.cc",
|
| + "x11_input_method_context_impl_gtk2.h",
|
| +]
|
| +
|
| +common_configs = []
|
| +
|
| +if (use_gconf) {
|
| + common_sources += [
|
| + "gconf_listener.cc",
|
| + "gconf_listener.h",
|
| + ]
|
| + common_configs += [ "//build/config/linux/gconf" ]
|
| +}
|
| +
|
| +if (use_cups) {
|
| + common_configs += [ "//printing:cups" ]
|
| +}
|
| +
|
| +common_configs += [
|
| + ":libgtkui_warnings",
|
| + "//build/config/linux:x11",
|
| +]
|
| +
|
| +common_deps = [
|
| + "//base",
|
| + "//base:i18n",
|
| + "//base/third_party/dynamic_annotations",
|
| + "//chrome:extra_resources",
|
| + "//chrome:resources",
|
| + "//chrome:strings",
|
| + "//chrome/app:command_ids",
|
| + "//chrome/app/theme:theme_resources",
|
| + "//components/resources",
|
| + "//content/public/browser",
|
| + "//printing",
|
| + "//skia",
|
| + "//ui/aura",
|
| + "//ui/base",
|
| + "//ui/base/ime",
|
| + "//ui/display",
|
| + "//ui/events",
|
| + "//ui/events:events_base",
|
| + "//ui/events/platform/x11",
|
| + "//ui/gfx",
|
| + "//ui/gfx/geometry",
|
| + "//ui/gfx/x",
|
| + "//ui/native_theme",
|
| + "//ui/resources",
|
| + "//ui/shell_dialogs",
|
| + "//ui/strings",
|
| + "//ui/views",
|
| +]
|
| +
|
| +component("libgtk2ui") {
|
| + sources = common_sources
|
| + configs += common_configs
|
| + defines = [ "LIBGTKUI_IMPLEMENTATION" ]
|
| +
|
| + # GTK2 pulls pangoft2 as dependency, and pangoft2 depends on harfbuzz.
|
| + # To avoid missing indirectly referenced harfbuzz symbols from pango,
|
| + # some hack is required when bundled harfbuzz is used and component build is
|
| + # disabled.
|
| + # See crbug.com/462689 for details.
|
| + all_dependent_configs = [ "//third_party/harfbuzz-ng:pangoft2_link_hack" ]
|
| +
|
| + deps = common_deps + [
|
| + "//build/config/linux/gtk2",
|
| + "//build/config/linux/gtk2:gtkprint2",
|
| + ]
|
| + public_deps = [
|
| + "//chrome/browser:theme_properties",
|
| + ]
|
| +}
|
| +
|
| +component("libgtk3ui") {
|
| + sources = common_sources
|
| + configs += common_configs
|
| + defines = [ "LIBGTKUI_IMPLEMENTATION" ]
|
| +
|
| + deps = common_deps + [
|
| + "//build/config/linux/gtk3",
|
| + "//build/config/linux/gtk3:gtkprint3",
|
| + ]
|
| + public_deps = [
|
| + "//chrome/browser:theme_properties",
|
| + ]
|
| +}
|
|
|