# Copyright 2019 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("//testing/test.gni")

assert(is_chromeos, "Non-Chrome-OS builds must not depend on //chromeos")

component("tpm") {
  defines = [ "IS_CHROMEOS_TPM_IMPL" ]
  deps = [
    "//base",
    "//chromeos/cryptohome",
    "//chromeos/dbus",
    "//chromeos/dbus:cryptohome_proto",
    "//chromeos/login/login_state",
    "//components/account_id",
    "//components/policy/core/common:common_constants",
    "//components/policy/proto",
    "//crypto",
    "//google_apis",
  ]
  sources = [
    "install_attributes.cc",
    "install_attributes.h",
    "tpm_password_fetcher.cc",
    "tpm_password_fetcher.h",
    "tpm_token_info_getter.cc",
    "tpm_token_info_getter.h",
    "tpm_token_loader.cc",
    "tpm_token_loader.h",
  ]
}

source_set("unit_tests") {
  testonly = true
  deps = [
    ":tpm",
    "//base/test:test_support",
    "//chromeos:chromeos_constants",
    "//chromeos/cryptohome:test_support",
    "//chromeos/dbus:cryptohome_proto",
    "//chromeos/dbus:test_support",
    "//components/policy/proto",
    "//google_apis",
    "//testing/gtest",
  ]
  sources = [
    "install_attributes_unittest.cc",
    "tpm_token_info_getter_unittest.cc",
  ]
}
