# 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 = [
    ":tpm2-simulator",
    ":tpm2-simulator-init",
    ":tpm2-simulator-stop",
  ]
}

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

executable("tpm2-simulator") {
  sources = [
    "main.cc",
    "simulator.cc",
    "tpm_executor_tpm2_impl.cc",
  ]
  configs += [ ":target_defaults" ]
  libs = [ "tpm2" ]
  pkg_deps = [ "libminijail" ]
}

executable("tpm2-simulator-init") {
  sources = [ "simulator-init.cc" ]
  pkg_deps = [ "vboot_host" ]
  configs += [ ":target_defaults" ]
}

executable("tpm2-simulator-stop") {
  sources = [ "simulator-stop.cc" ]
  pkg_deps = [ "vboot_host" ]
  configs += [ ":target_defaults" ]
}
