# Copyright 2018 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 = [ ":timberslide" ]
  if (use.test) {
    deps += [ ":timberslide_test_runner" ]
  }
}

pkg_config("target_defaults") {
  pkg_deps = [
    "libbrillo",
    "libchrome",
    "libmetrics",
    "re2",
  ]
}

static_library("libtimberslide") {
  sources = [
    "fingerprint_log_listener_impl.cc",
    "timberslide.cc",
  ]
  configs += [ ":target_defaults" ]
}

executable("timberslide") {
  sources = [ "main.cc" ]
  configs += [ ":target_defaults" ]
  deps = [ ":libtimberslide" ]
}

if (use.test) {
  pkg_config("timberslide_test_config") {
    pkg_deps = [ "libchrome-test" ]
  }
  executable("timberslide_test_runner") {
    sources = [
      "fingerprint_log_listener_impl_test.cc",
      "timberslide_test.cc",
      "timberslide_testrunner.cc",
    ]
    configs += [
      "//common-mk:test",
      ":timberslide_test_config",
      ":target_defaults",
    ]
    deps = [
      ":libtimberslide",
      "//common-mk/testrunner",
    ]
  }
}
