69 lines
2 KiB
Text
69 lines
2 KiB
Text
# 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("//chromium/build/config/linux/gtk/gtk.gni")
|
|
import("//chromium/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" ]
|
|
}
|