# 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 = [
    ":cryptohome-tpm-live-test",
  ]
}

pkg_config("cryptohome-tpm-live-test_config") {
  pkg_deps = [
    "libbrillo",
    "libchrome-${libbase_ver}",
    "libmetrics-${libbase_ver}",
    "openssl",
    "protobuf",
  ]
}

executable("cryptohome-tpm-live-test") {
  configs += [
    ":cryptohome-tpm-live-test_config",
    "//cryptohome/libs:target_defaults",
  ]
  sources = [
    "../cryptohome-tpm-live-test.cc",
    "../tpm_live_test.cc",
  ]
  deps = [
    "//cryptohome/libs:libcrostpm",
  ]
  pkg_deps = [
    # system_api depends on protobuf (or protobuf-lite). It must appear
    # before protobuf here or the linker flags won't be in the right
    # order.
    "system_api",
    "protobuf",
  ]
}
