| # 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/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" ] |
| } |