# Copyright 2020 The Chromium OS 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("//common-mk/pkg_config.gni")

group("all") {
  deps = [ ":pciguard" ]
}

pkg_config("target_defaults") {
  pkg_deps = [
    "libbrillo",
    "libchrome",
    "libsession_manager-client",
    "libudev",
  ]
}

executable("pciguard") {
  configs += [ ":target_defaults" ]
  sources = [
    "authorizer.cc",
    "daemon.cc",
    "event_handler.cc",
    "main.cc",
    "pciguard_utils.cc",
    "session_monitor.cc",
    "tbt_udev_monitor.cc",
  ]
  libs = [ "pthread" ]
}
