# Copyright 2016 The Chromium Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

import("//build/config/chromeos/ui_mode.gni")
import("//build/config/features.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") {
  packages = [
    "atk",
    "atk-bridge-2.0",
  ]
  atk_lib_dir = exec_script(pkg_config_script,
                            common_pkg_config_args + pkg_config_args + [
                                  "--libdir",
                                  "atk",
                                ],
                            "string")
  defines = [
    "ATK_LIB_DIR=\"$atk_lib_dir\"",
    "USE_ATK_BRIDGE",
  ]
}
