# Copyright 2021 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/proto_library.gni")

proto_library("status_proto") {
  sources = [ "status.proto" ]

  proto_in_dir = "//missive/proto"
  proto_out_dir = "include/missive/proto"
  standalone = true
}

# Record constants for use with the reporting messaging library.
proto_library("record_constants") {
  sources = [ "record_constants.proto" ]

  proto_in_dir = "//missive/proto"
  proto_out_dir = "include/missive/proto"
  standalone = true
}

# Record definitions for reporting.
proto_library("record_proto") {
  sources = [ "record.proto" ]

  proto_in_dir = "//missive/proto"
  proto_out_dir = "include/missive/proto"
  standalone = true

  deps = [ ":record_constants" ]
}

proto_library("interface_proto") {
  sources = [ "interface.proto" ]

  proto_in_dir = "//missive/proto"
  proto_out_dir = "include/missive/proto"
  standalone = true

  deps = [
    ":record_constants",
    ":record_proto",
    ":status_proto",
  ]
}
