# Copyright 2014 The Chromium Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

import("//build/config/chromeos/ui_mode.gni")
import("//build/config/features.gni")
import("//crypto/features.gni")

if (is_chromeos_ash) {
  component("ownership") {
    sources = [
      "mock_owner_key_util.cc",
      "mock_owner_key_util.h",
      "owner_key_util.cc",
      "owner_key_util.h",
      "owner_key_util_impl.cc",
      "owner_key_util_impl.h",
      "owner_settings_service.cc",
      "owner_settings_service.h",
    ]

    defines = [ "OWNERSHIP_IMPLEMENTATION" ]

    public_deps = [ "//components/policy/proto" ]

    deps = [
      "//base",
      "//build:chromeos_buildflags",
      "//components/keyed_service/core",
      "//components/policy:generated",
      "//components/policy/core/common",
      "//components/policy/proto",
      "//crypto",
    ]

    if (use_nss_certs) {
      public_configs = [ "//build/config/linux/nss" ]
    }
  }

  source_set("unit_tests") {
    testonly = true
    sources = [ "owner_key_util_impl_unittest.cc" ]

    deps = [
      ":ownership",
      "//base",
      "//testing/gtest",
    ]
  }
}
