# Copyright 2014 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("//third_party/protobuf/proto_library.gni")

# The proto files need to be a component to avoid duplicate symbols the way the
# dependency structure is currently. Since proto_library generates a source
# set, here we link the result into a component.
component("proto") {
  output_name = "policy_proto"
  public_deps = [
    ":proto_internal",
  ]
}

proto_library("proto_internal") {
  visibility = [ ":proto" ]

  sources = [
    "device_management_backend.proto",
    "policy_signing_key.proto",
  ]

  if (is_chromeos) {
    sources += [
      "chrome_device_policy.proto",
      "install_attributes.proto",
    ]
  }

  if (!is_android && !is_ios) {
    sources += [ "chrome_extension_policy.proto" ]
  }

  cc_generator_options = "dllexport_decl=POLICY_PROTO_EXPORT:"
  cc_include = "components/policy/proto/policy_proto_export.h"
  component_build_force_source_set = true
  defines = [ "POLICY_PROTO_COMPILATION" ]
}
