summaryrefslogtreecommitdiffstats
path: root/third_party/libwebrtc/build/config/linux/gtk
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/libwebrtc/build/config/linux/gtk')
-rw-r--r--third_party/libwebrtc/build/config/linux/gtk/BUILD.gn69
-rw-r--r--third_party/libwebrtc/build/config/linux/gtk/gtk.gni10
2 files changed, 79 insertions, 0 deletions
diff --git a/third_party/libwebrtc/build/config/linux/gtk/BUILD.gn b/third_party/libwebrtc/build/config/linux/gtk/BUILD.gn
new file mode 100644
index 0000000000..6590023971
--- /dev/null
+++ b/third_party/libwebrtc/build/config/linux/gtk/BUILD.gn
@@ -0,0 +1,69 @@
+# Copyright 2016 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/gtk/gtk.gni")
+import("//build/config/linux/pkg_config.gni")
+
+assert(is_linux, "This file should only be referenced on Linux")
+
+declare_args() {
+ # The (major) version of GTK to build against. A different version may be
+ # loaded at runtime.
+ gtk_version = 3
+}
+
+# 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",
+ "gthread-2.0",
+ ]
+ if (gtk_version == 3) {
+ packages += [ "gtk+-3.0" ]
+ } else {
+ assert(gtk_version == 4)
+ packages += [ "gtk4" ]
+ }
+}
+
+group("gtk") {
+ visibility = [
+ # This is the only target that can depend on GTK. Do not add more targets
+ # to this list.
+ "//ui/gtk:gtk_stubs",
+
+ # These are allow-listed for WebRTC builds.
+ "//examples:peerconnection_client",
+ "//remoting/host:common",
+ "//remoting/host:remoting_me2me_host_static",
+ "//remoting/host/file_transfer",
+ "//remoting/host/it2me:common",
+ "//remoting/host/it2me:remote_assistance_host",
+ "//remoting/host/linux",
+ "//remoting/host/remote_open_url:common",
+ "//remoting/test:it2me_standalone_host_main",
+ "//webrtc/examples:peerconnection_client",
+ ]
+
+ public_configs = [ ":gtk_internal_config" ]
+}
+
+# Depend on "gtkprint" to get this.
+pkg_config("gtkprint_internal_config") {
+ if (gtk_version == 3) {
+ packages = [ "gtk+-unix-print-3.0" ]
+ } else {
+ assert(gtk_version == 4)
+ packages = [ "gtk4-unix-print" ]
+ }
+}
+
+group("gtkprint") {
+ visibility = [ "//ui/gtk:*" ]
+ public_configs = [ ":gtkprint_internal_config" ]
+}
diff --git a/third_party/libwebrtc/build/config/linux/gtk/gtk.gni b/third_party/libwebrtc/build/config/linux/gtk/gtk.gni
new file mode 100644
index 0000000000..70cb823154
--- /dev/null
+++ b/third_party/libwebrtc/build/config/linux/gtk/gtk.gni
@@ -0,0 +1,10 @@
+# Copyright 2018 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/ui.gni")
+
+declare_args() {
+ # Whether or not we should use libgtk.
+ use_gtk = (is_linux || is_bsd) && !is_chromecast
+}