OLD | NEW |
1 # Copyright 2014 The Chromium Authors. All rights reserved. | 1 # Copyright 2014 The Chromium Authors. All rights reserved. |
2 # Use of this source code is governed by a BSD-style license that can be | 2 # Use of this source code is governed by a BSD-style license that can be |
3 # found in the LICENSE file. | 3 # found in the LICENSE file. |
4 | 4 |
5 assert(is_linux, "This file should only be referenced on Linux") | 5 assert(is_linux, "This file should only be referenced on Linux") |
6 | 6 |
7 import("//build/config/features.gni") | 7 import("//build/config/features.gni") |
8 import("//build/config/ui.gni") | 8 import("//build/config/linux/gtk/gtk.gni") |
9 import("//printing/features/features.gni") | 9 import("//printing/features/features.gni") |
10 | 10 |
11 # gn orders flags on a target before flags from configs. The default config | 11 # gn orders flags on a target before flags from configs. The default config |
12 # adds -Wall, and these flags have to be after -Wall -- so they need to come | 12 # adds -Wall, and these flags have to be after -Wall -- so they need to come |
13 # from a config and can't be on the target directly. | 13 # from a config and can't be on the target directly. |
14 config("libgtkui_warnings") { | 14 config("libgtkui_warnings") { |
15 if (is_clang) { | 15 if (is_clang) { |
16 cflags = [ | 16 cflags = [ |
17 # G_DEFINE_TYPE automatically generates a *get_instance_private inline | 17 # G_DEFINE_TYPE automatically generates a *get_instance_private inline |
18 # function after glib 2.37. That's unused. Prevent to complain about it. | 18 # function after glib 2.37. That's unused. Prevent to complain about it. |
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
107 "//ui/gfx", | 107 "//ui/gfx", |
108 "//ui/gfx/geometry", | 108 "//ui/gfx/geometry", |
109 "//ui/gfx/x", | 109 "//ui/gfx/x", |
110 "//ui/native_theme", | 110 "//ui/native_theme", |
111 "//ui/resources", | 111 "//ui/resources", |
112 "//ui/shell_dialogs", | 112 "//ui/shell_dialogs", |
113 "//ui/strings", | 113 "//ui/strings", |
114 "//ui/views", | 114 "//ui/views", |
115 ] | 115 ] |
116 | 116 |
| 117 # Automatically depends on the GTK version associated with the current build |
| 118 # flags. |
| 119 group("libgtkui") { |
| 120 if (use_gtk3) { |
| 121 public_deps = [ |
| 122 ":libgtk3ui", |
| 123 ] |
| 124 } else { |
| 125 public_deps = [ |
| 126 ":libgtk2ui", |
| 127 ] |
| 128 } |
| 129 } |
| 130 |
117 component("libgtk2ui") { | 131 component("libgtk2ui") { |
118 sources = common_sources | 132 sources = common_sources |
119 configs += common_configs | 133 configs += common_configs |
120 defines = [ "LIBGTKUI_IMPLEMENTATION" ] | 134 defines = [ "LIBGTKUI_IMPLEMENTATION" ] |
121 | 135 |
122 # GTK2 pulls pangoft2 as dependency, and pangoft2 depends on harfbuzz. | 136 # GTK2 pulls pangoft2 as dependency, and pangoft2 depends on harfbuzz. |
123 # To avoid missing indirectly referenced harfbuzz symbols from pango, | 137 # To avoid missing indirectly referenced harfbuzz symbols from pango, |
124 # some hack is required when bundled harfbuzz is used and component build is | 138 # some hack is required when bundled harfbuzz is used and component build is |
125 # disabled. | 139 # disabled. |
126 # See crbug.com/462689 for details. | 140 # See crbug.com/462689 for details. |
127 all_dependent_configs = [ "//third_party/harfbuzz-ng:pangoft2_link_hack" ] | 141 all_dependent_configs = [ "//third_party/harfbuzz-ng:pangoft2_link_hack" ] |
128 | 142 |
129 deps = common_deps + [ | 143 deps = common_deps + [ |
130 "//build/config/linux/gtk2", | 144 "//build/config/linux/gtk2", |
131 "//build/config/linux/gtk2:gtkprint2", | 145 "//build/config/linux/gtk2:gtkprint2", |
132 ] | 146 ] |
133 public_deps = [ | 147 public_deps = [ |
134 "//chrome/browser:theme_properties", | 148 "//chrome/browser:theme_properties", |
135 ] | 149 ] |
136 } | 150 } |
137 | 151 |
| 152 # This is compiled with "all" even when it's not referenced to ensure that |
| 153 # GTK3 continues to build. GTK3 is explicitly specified by some distros. |
138 component("libgtk3ui") { | 154 component("libgtk3ui") { |
139 sources = common_sources | 155 sources = common_sources |
140 configs += common_configs | 156 configs += common_configs |
141 defines = [ "LIBGTKUI_IMPLEMENTATION" ] | 157 defines = [ "LIBGTKUI_IMPLEMENTATION" ] |
142 | 158 |
143 deps = common_deps + [ | 159 deps = common_deps + [ |
144 "//build/config/linux/gtk3", | 160 "//build/config/linux/gtk3", |
145 "//build/config/linux/gtk3:gtkprint3", | 161 "//build/config/linux/gtk3:gtkprint3", |
146 ] | 162 ] |
147 public_deps = [ | 163 public_deps = [ |
148 "//chrome/browser:theme_properties", | 164 "//chrome/browser:theme_properties", |
149 ] | 165 ] |
150 } | 166 } |
OLD | NEW |