# Copyright (c) 2013 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/sysroot.gni")
import("//build/config/ui.gni")
import("//tools/generate_library_loader/generate_library_loader.gni")

config("sdk") {
  if (sysroot != "") {
    cflags = [ "--sysroot=" + sysroot ]
    ldflags = [ "--sysroot=" + sysroot ]

    # Need to get some linker flags out of the sysroot.
    ldflags += [ exec_script("sysroot_ld_path.py",
                             [
                               rebase_path("//build/linux/sysroot_ld_path.sh",
                                           root_build_dir),
                               sysroot,
                             ],
                             "value") ]
  }
}

config("x11") {
  libs = [
    "X11",
    "Xi",
  ]
}

config("xcomposite") {
  libs = [ "Xcomposite" ]
}

config("xext") {
  libs = [ "Xext" ]
}

config("libcap") {
  libs = [ "cap" ]
}

config("libresolv") {
  libs = [ "resolv" ]
}

# This generates a target named "libpci".
generate_library_loader("libpci") {
  name = "LibPciLoader"
  output_h = "libpci.h"
  output_cc = "libpci_loader.cc"
  header = "<pci/pci.h>"

  functions = [
    "pci_alloc",
    "pci_init",
    "pci_cleanup",
    "pci_scan_bus",
    "pci_fill_info",
    "pci_lookup_name",
  ]
}

libudev_functions = [
  "udev_device_get_action",
  "udev_device_get_devnode",
  "udev_device_get_parent",
  "udev_device_get_parent_with_subsystem_devtype",
  "udev_device_get_property_value",
  "udev_device_get_subsystem",
  "udev_device_get_sysattr_value",
  "udev_device_get_sysname",
  "udev_device_get_syspath",
  "udev_device_new_from_devnum",
  "udev_device_new_from_subsystem_sysname",
  "udev_device_new_from_syspath",
  "udev_device_unref",
  "udev_enumerate_add_match_subsystem",
  "udev_enumerate_get_list_entry",
  "udev_enumerate_new",
  "udev_enumerate_scan_devices",
  "udev_enumerate_unref",
  "udev_list_entry_get_next",
  "udev_list_entry_get_name",
  "udev_monitor_enable_receiving",
  "udev_monitor_filter_add_match_subsystem_devtype",
  "udev_monitor_get_fd",
  "udev_monitor_new_from_netlink",
  "udev_monitor_receive_device",
  "udev_monitor_unref",
  "udev_new",
  "udev_set_log_fn",
  "udev_set_log_priority",
  "udev_unref",
]

# This generates a target named "udev0_loader".
generate_library_loader("udev0_loader") {
  name = "LibUdev0Loader"
  output_h = "libudev0.h"
  output_cc = "libudev0_loader.cc"
  header = "\"third_party/libudev/libudev0.h\""

  functions = libudev_functions
}

# This generates a target named "udev1_loader".
generate_library_loader("udev1_loader") {
  name = "LibUdev1Loader"
  output_h = "libudev1.h"
  output_cc = "libudev1_loader.cc"
  header = "\"third_party/libudev/libudev1.h\""

  functions = libudev_functions
}

group("udev") {
  public_deps = [
    ":udev0_loader",
    ":udev1_loader",
  ]
}
