|  | # 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/features.gni") | 
|  | import("//build/config/linux/gtk/gtk.gni") | 
|  | import("//build/config/linux/pkg_config.gni") | 
|  | import("//build/config/ui.gni") | 
|  |  | 
|  | # CrOS doesn't install GTK or any gnome packages. | 
|  | assert(!is_chromeos) | 
|  |  | 
|  | # These packages should _only_ be expected when building for a target. | 
|  | assert(current_toolchain == default_toolchain) | 
|  |  | 
|  | if (use_atk) { | 
|  | assert(use_glib, "use_atk=true requires that use_glib=true") | 
|  | } | 
|  |  | 
|  | pkg_config("atk_base") { | 
|  | packages = [ "atk" ] | 
|  | atk_lib_dir = exec_script(pkg_config_script, | 
|  | pkg_config_args + [ | 
|  | "--libdir", | 
|  | "atk", | 
|  | ], | 
|  | "string") | 
|  | defines = [ "ATK_LIB_DIR=\"$atk_lib_dir\"" ] | 
|  | if (use_gtk3) { | 
|  | packages += [ "atk-bridge-2.0" ] | 
|  | defines += [ "USE_ATK_BRIDGE" ] | 
|  | } | 
|  | } | 
|  |  | 
|  | # gn orders flags on a target before flags from configs. The default config | 
|  | # adds -Wall, and these flags have to be after -Wall -- so they need to | 
|  | # come from a config and can't be on the target directly. | 
|  | config("atk") { | 
|  | configs = [ ":atk_base" ] | 
|  |  | 
|  | cflags = [ | 
|  | # G_DEFINE_TYPE automatically generates a *get_instance_private | 
|  | # inline function after glib 2.37. That's unused. Prevent to | 
|  | # complain about it. | 
|  | "-Wno-unused-function", | 
|  | ] | 
|  |  | 
|  | if (is_clang) { | 
|  | # glib uses the pre-c++11 typedef-as-static_assert hack. | 
|  | cflags += [ "-Wno-unused-local-typedef" ] | 
|  | } | 
|  | } |