# Copyright 2018 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("//build/config/chromeos/rules.gni")
import("//testing/test.gni")
import("//third_party/protobuf/proto_library.gni")

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

source_set("cryptohome") {
  deps = [
    "//base",
    "//chromeos:chromeos_export",
    "//chromeos:cryptohome_proto",
    "//chromeos/dbus",
    "//chromeos/login:challenge_response_key",
    "//components/account_id",
    "//components/device_event_log",
    "//components/user_manager",
  ]
  sources = [
    "async_method_caller.cc",
    "async_method_caller.h",
    "cryptohome_parameters.cc",
    "cryptohome_parameters.h",
    "cryptohome_util.cc",
    "cryptohome_util.h",
    "homedir_methods.cc",
    "homedir_methods.h",
    "system_salt_getter.cc",
    "system_salt_getter.h",
  ]
}

source_set("unit_tests") {
  testonly = true
  deps = [
    ":cryptohome",
    "//base",
    "//base/test:test_support",
    "//chromeos:cryptohome_proto",
    "//chromeos/dbus",
    "//chromeos/login",
    "//chromeos/login:challenge_response_key",
    "//testing/gtest:gtest",
  ]
  sources = [
    "cryptohome_util_unittest.cc",
    "system_salt_getter_unittest.cc",
  ]
}
