# Copyright 2019 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")
import("//common-mk/mojom_bindings_generator.gni")

group("all") {
  deps = [
    ":arc-keymasterd",
  ]
}

# Binary
executable("arc-keymasterd") {
  sources = [
    "daemon.cc",
    "main.cc",
  ]
  deps = [
    ":keymaster_mojo_bindings",
  ]
  pkg_deps = [
    "libbrillo-${libbase_ver}",
    "libchrome-${libbase_ver}",
    "libmojo-${libbase_ver}",
  ]
}

# Mojo bindings
generate_mojom_bindings("keymaster_mojo_bindings") {
  sources = [
    "mojo/keymaster.mojom",
  ]
}
