Index: build/config/linux/gtk/BUILD.gn |
diff --git a/build/config/linux/gtk/BUILD.gn b/build/config/linux/gtk/BUILD.gn |
new file mode 100644 |
index 0000000000000000000000000000000000000000..4968e2deb669fb3be6a9739c1c07b1325f4c7cf2 |
--- /dev/null |
+++ b/build/config/linux/gtk/BUILD.gn |
@@ -0,0 +1,42 @@ |
+# Copyright 2015 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/linux/pkg_config.gni") |
+ |
+assert(is_linux, "This file should only be referenced on Linux") |
+ |
+# Depend on //build/config/linux/gtk to use GTK. |
+# |
+# GN doesn't check visibility for configs so we give this an obviously internal |
+# name to discourage random targets from accidentally depending on this and |
+# bypassing the GTK target's visibility. |
+pkg_config("gtk_internal_config") { |
+ # Gtk requires gmodule, but it does not list it as a dependency in some |
+ # misconfigured systems. |
+ packages = [ |
+ "gmodule-2.0", |
+ "gtk+-2.0", |
+ "gthread-2.0", |
+ ] |
+} |
+ |
+# Basically no parts of Chrome should depend on GTK. To prevent accidents, the |
+# parts that explicitly need GTK are whitelisted on this target. |
+group("gtk") { |
+ visibility = [ |
+ "//chrome/browser/ui/libgtk2ui", |
+ "//remoting/host", |
+ ] |
+ direct_dependent_configs = [ ":gtk_internal_config" ] |
+} |
+ |
+# Depend on "gtkprint" to get this. |
+pkg_config("gtkprint_internal_config") { |
+ packages = [ "gtk+-unix-print-2.0" ] |
+} |
+ |
+group("gtkprint") { |
+ visibility = [ "//chrome/browser/ui/libgtk2ui" ] |
+ direct_dependent_configs = [ ":gtkprint_internal_config" ] |
+} |