summaryrefslogtreecommitdiffstats
path: root/third_party/libwebrtc/build/config/linux/gtk/BUILD.gn
blob: 659002397184ad5017686585c0a5ad641e3312c5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
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" ]
}