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

group("all") {
  deps = [
    ":libsystem_api",
    ":system_api-anomaly_detector-protos",
    ":system_api-attestation-goprotos",
    ":system_api-attestation-protos",
    ":system_api-authpolicy-protos",
    ":system_api-biod-protos",
    ":system_api-bootlockbox-goprotos",
    ":system_api-bootlockbox-protos",
    ":system_api-chaps-protos",
    ":system_api-chunneld-protos",
    ":system_api-cryptohome-goprotos",
    ":system_api-dlcservice-protos",
    ":system_api-dlp-protos",
    ":system_api-fusebox-protos",
    ":system_api-hps-goprotos",
    ":system_api-hps-protos",
    ":system_api-kerberos-goprotos",
    ":system_api-kerberos-protos",
    ":system_api-login_manager-goprotos",
    ":system_api-login_manager-protos",
    ":system_api-lorgnette-goprotos",
    ":system_api-lorgnette-protos",
    ":system_api-metrics_event-goprotos",
    ":system_api-metrics_event-protos",
    ":system_api-minios-protos",
    ":system_api-oobe_config-protos",
    ":system_api-patchpanel-goprotos",
    ":system_api-patchpanel-protos",
    ":system_api-plugin_vm_service-goprotos",
    ":system_api-plugin_vm_service-protos",
    ":system_api-power_manager-goprotos",
    ":system_api-power_manager-protos",
    ":system_api-privacy_screen-protos",
    ":system_api-protos",
    ":system_api-rmad-protos",
    ":system_api-runtime_probe-goprotos",
    ":system_api-runtime_probe-protos",
    ":system_api-seneschal-goprotos",
    ":system_api-seneschal-protos",
    ":system_api-smbprovider-protos",
    ":system_api-system_proxy-protos",
    ":system_api-tpm_manager-goprotos",
    ":system_api-tpm_manager-protos",
    ":system_api-u2f-protos",
    ":system_api-update_engine-protos",
    ":system_api-vm_applications-protos",
    ":system_api-vm_cicerone-goprotos",
    ":system_api-vm_cicerone-protos",
    ":system_api-vm_concierge-goprotos",
    ":system_api-vm_concierge-protos",
    ":system_api-vm_disk_management-protos",
    ":system_api-vm_permission_service-protos",
    ":system_api-vm_plugin_dispatcher-goprotos",
    ":system_api-vm_plugin_dispatcher-protos",
    ":system_api-vm_sk_forwarding-protos",
  ]
}

shared_library("libsystem_api") {
  deps = [
    ":system_api-attestation-protos",
    ":system_api-bootlockbox-protos",
    ":system_api-chaps-protos",
    ":system_api-cryptohome-protos",
    ":system_api-patchpanel-protos",
    ":system_api-tpm_manager-protos",
  ]
  if (use.fuzzer) {
    pkg_deps = [ "protobuf" ]
  } else {
    pkg_deps = [ "protobuf-lite" ]
  }
}

proto_library("system_api-protos") {
  proto_in_dir = "dbus"
  proto_out_dir = "include/system_api/proto_bindings"
  sources = [
    "${proto_in_dir}/field_trial_list.proto",
    "${proto_in_dir}/mtp_file_entry.proto",
    "${proto_in_dir}/mtp_storage_info.proto",
  ]
  standalone = true
}

proto_library("system_api-power_manager-protos") {
  proto_in_dir = "dbus/power_manager"
  proto_out_dir = "include/power_manager/proto_bindings"
  sources = [
    "${proto_in_dir}/backlight.proto",
    "${proto_in_dir}/idle.proto",
    "${proto_in_dir}/input_event.proto",
    "${proto_in_dir}/peripheral_battery_status.proto",
    "${proto_in_dir}/policy.proto",
    "${proto_in_dir}/power_supply_properties.proto",
    "${proto_in_dir}/suspend.proto",
    "${proto_in_dir}/switch_states.proto",
    "${proto_in_dir}/thermal.proto",
  ]
  standalone = true
}

goproto_library("system_api-power_manager-goprotos") {
  proto_in_dir = "dbus/power_manager"
  proto_out_dir = "go/src/"
  sources = [
    "${proto_in_dir}/backlight.proto",
    "${proto_in_dir}/idle.proto",
    "${proto_in_dir}/input_event.proto",
    "${proto_in_dir}/peripheral_battery_status.proto",
    "${proto_in_dir}/policy.proto",
    "${proto_in_dir}/power_supply_properties.proto",
    "${proto_in_dir}/suspend.proto",
    "${proto_in_dir}/switch_states.proto",
    "${proto_in_dir}/thermal.proto",
  ]
}

proto_library("system_api-cryptohome-protos") {
  proto_in_dir = "dbus/cryptohome"
  proto_out_dir = "include/cryptohome/proto_bindings"
  sources = [
    "${proto_in_dir}/UserDataAuth.proto",
    "${proto_in_dir}/fido.proto",
    "${proto_in_dir}/key.proto",
    "${proto_in_dir}/rpc.proto",
    "${proto_in_dir}/signed_secret.proto",
  ]
  standalone = true

  # system_api-cryptohome-protos is used by a shared_library
  # object, so we need to build it with "-fPIC" instead of "-fPIE".
  use_pic = true
}

goproto_library("system_api-cryptohome-goprotos") {
  proto_in_dir = "dbus/cryptohome"
  proto_out_dir = "go/src/"
  sources = [
    "${proto_in_dir}/fido.proto",
    "${proto_in_dir}/key.proto",
    "${proto_in_dir}/rpc.proto",
  ]
}

proto_library("system_api-authpolicy-protos") {
  proto_in_dir = "dbus/authpolicy"
  proto_out_dir = "include/authpolicy/proto_bindings"
  sources = [ "${proto_in_dir}/active_directory_info.proto" ]
  standalone = true
}

proto_library("system_api-biod-protos") {
  proto_in_dir = "dbus/biod"
  proto_out_dir = "include/biod/proto_bindings"
  sources = [
    "${proto_in_dir}/constants.proto",
    "${proto_in_dir}/messages.proto",
  ]
  standalone = true
}

proto_library("system_api-kerberos-protos") {
  proto_in_dir = "dbus/kerberos"
  proto_out_dir = "include/kerberos/proto_bindings"
  sources = [ "${proto_in_dir}/kerberos_service.proto" ]
  standalone = true
}

goproto_library("system_api-kerberos-goprotos") {
  proto_in_dir = "dbus/kerberos"
  proto_out_dir = "go/src/"
  sources = [ "${proto_in_dir}/kerberos_service.proto" ]
}

proto_library("system_api-login_manager-protos") {
  proto_in_dir = "dbus/login_manager"
  proto_out_dir = "include/login_manager/proto_bindings"
  sources = [
    "${proto_in_dir}/arc.proto",
    "${proto_in_dir}/login_screen_storage.proto",
    "${proto_in_dir}/policy_descriptor.proto",
  ]
  standalone = true

  # Override optimize_for option in proto file.
  # Needed for fuzz targets using libprotobuf-mutator.
  if (use.fuzzer) {
    gen_cpp_mode = "speed"
  }
}

goproto_library("system_api-login_manager-goprotos") {
  proto_in_dir = "dbus/login_manager"
  proto_out_dir = "go/src/"
  sources = [ "${proto_in_dir}/policy_descriptor.proto" ]
}

proto_library("system_api-lorgnette-protos") {
  proto_in_dir = "dbus/lorgnette"
  proto_out_dir = "include/lorgnette/proto_bindings"
  sources = [ "${proto_in_dir}/lorgnette_service.proto" ]
  standalone = true
}

goproto_library("system_api-lorgnette-goprotos") {
  proto_in_dir = "dbus/lorgnette"
  proto_out_dir = "go/src/"
  sources = [ "${proto_in_dir}/lorgnette_service.proto" ]
}

proto_library("system_api-chaps-protos") {
  proto_in_dir = "dbus/chaps"
  proto_out_dir = "include/chaps/proto_bindings"
  sources = [
    "${proto_in_dir}/ck_structs.proto",
    "${proto_in_dir}/key_permissions.proto",
  ]
  standalone = true

  # system_api-chaps-protos is used by a shared_library
  # object, so we need to build it with "-fPIC" instead of "-fPIE".
  use_pic = true
}

proto_library("system_api-attestation-protos") {
  proto_in_dir = "dbus/attestation"
  proto_out_dir = "include/attestation/proto_bindings"
  sources = [
    "${proto_in_dir}/attestation_ca.proto",
    "${proto_in_dir}/google_key.proto",
    "${proto_in_dir}/interface.proto",
    "${proto_in_dir}/keystore.proto",
    "${proto_in_dir}/pca_agent.proto",
  ]
  standalone = true

  # system_api-attestation-protos" is used by a shared_library
  # object, so we need to build it with "-fPIC" instead of "-fPIE".
  use_pic = true
}

goproto_library("system_api-attestation-goprotos") {
  proto_in_dir = "dbus/attestation"
  proto_out_dir = "go/src/"
  sources = [
    "${proto_in_dir}/attestation_ca.proto",
    "${proto_in_dir}/interface.proto",
    "${proto_in_dir}/keystore.proto",
  ]
}

proto_library("system_api-tpm_manager-protos") {
  proto_in_dir = "dbus/tpm_manager"
  proto_out_dir = "include/tpm_manager/proto_bindings"
  sources = [ "${proto_in_dir}/tpm_manager.proto" ]
  standalone = true

  # system_api-tpm_manager-protos is used by a shared_library
  # object, so we need to build it with "-fPIC" instead of "-fPIE".
  use_pic = true
}

goproto_library("system_api-tpm_manager-goprotos") {
  proto_in_dir = "dbus/tpm_manager"
  proto_out_dir = "go/src/"
  sources = [ "${proto_in_dir}/tpm_manager.proto" ]
}

proto_library("system_api-metrics_event-protos") {
  proto_in_dir = "dbus/metrics_event"
  proto_out_dir = "include/metrics_event/proto_bindings"
  sources = [ "${proto_in_dir}/metrics_event.proto" ]
  standalone = true
}

goproto_library("system_api-metrics_event-goprotos") {
  proto_in_dir = "dbus/metrics_event"
  proto_out_dir = "go/src/"
  sources = [ "${proto_in_dir}/metrics_event.proto" ]
}

proto_library("system_api-plugin_vm_service-protos") {
  proto_in_dir = "dbus/plugin_vm_service"
  proto_out_dir = "include/plugin_vm_service/proto_bindings"
  sources = [ "${proto_in_dir}/plugin_vm_service.proto" ]
  standalone = true
}

goproto_library("system_api-plugin_vm_service-goprotos") {
  proto_in_dir = "dbus/plugin_vm_service"
  proto_out_dir = "go/src/"
  sources = [ "${proto_in_dir}/plugin_vm_service.proto" ]
}

proto_library("system_api-smbprovider-protos") {
  proto_in_dir = "dbus/smbprovider"
  proto_out_dir = "include/smbprovider/proto_bindings"
  sources = [ "${proto_in_dir}/directory_entry.proto" ]
  standalone = true
}

proto_library("system_api-vm_cicerone-protos") {
  proto_in_dir = "dbus/vm_cicerone"
  proto_out_dir = "include/vm_cicerone/proto_bindings"
  sources = [ "${proto_in_dir}/cicerone_service.proto" ]
  standalone = true
}

goproto_library("system_api-vm_cicerone-goprotos") {
  proto_in_dir = "dbus/vm_cicerone"
  proto_out_dir = "go/src/"
  sources = [ "${proto_in_dir}/cicerone_service.proto" ]
}

proto_library("system_api-vm_concierge-protos") {
  proto_in_dir = "dbus/vm_concierge"
  proto_out_dir = "include/vm_concierge/proto_bindings"
  sources = [ "${proto_in_dir}/concierge_service.proto" ]
  standalone = true
}

goproto_library("system_api-vm_concierge-goprotos") {
  proto_in_dir = "dbus/vm_concierge"
  proto_out_dir = "go/src/"
  sources = [ "${proto_in_dir}/concierge_service.proto" ]
}

proto_library("system_api-vm_applications-protos") {
  proto_in_dir = "dbus/vm_applications"
  proto_out_dir = "include/vm_applications/proto_bindings"
  sources = [ "${proto_in_dir}/apps.proto" ]
  standalone = true
}

proto_library("system_api-vm_sk_forwarding-protos") {
  proto_in_dir = "dbus/vm_sk_forwarding"
  proto_out_dir = "include/vm_sk_forwarding/proto_bindings"
  sources = [ "${proto_in_dir}/sk_forwarding.proto" ]
  standalone = true
}

proto_library("system_api-vm_disk_management-protos") {
  proto_in_dir = "dbus/vm_disk_management"
  proto_out_dir = "include/vm_disk_management/proto_bindings"
  sources = [ "${proto_in_dir}/disk_management.proto" ]
  standalone = true
}

proto_library("system_api-seneschal-protos") {
  proto_in_dir = "dbus/seneschal"
  proto_out_dir = "include/seneschal/proto_bindings"
  sources = [ "${proto_in_dir}/seneschal_service.proto" ]
  standalone = true
}

goproto_library("system_api-seneschal-goprotos") {
  proto_in_dir = "dbus/seneschal"
  proto_out_dir = "go/src/"
  sources = [ "${proto_in_dir}/seneschal_service.proto" ]
}

proto_library("system_api-oobe_config-protos") {
  proto_in_dir = "dbus/oobe_config"
  proto_out_dir = "include/oobe_config/proto_bindings"
  sources = [ "${proto_in_dir}/oobe_config.proto" ]
  standalone = true
}

proto_library("system_api-runtime_probe-protos") {
  proto_in_dir = "dbus/runtime_probe"
  proto_out_dir = "include/runtime_probe/proto_bindings"
  sources = [ "${proto_in_dir}/runtime_probe.proto" ]
  standalone = true
}

goproto_library("system_api-runtime_probe-goprotos") {
  proto_in_dir = "dbus/runtime_probe"
  proto_out_dir = "go/src/"
  sources = [ "${proto_in_dir}/runtime_probe.proto" ]
}

proto_library("system_api-bootlockbox-protos") {
  proto_in_dir = "dbus/bootlockbox"
  proto_out_dir = "include/bootlockbox/proto_bindings"
  sources = [ "${proto_in_dir}/boot_lockbox_rpc.proto" ]
  standalone = true

  # system_api-bootlockbox-protos is used by a shared_library
  # object, so we need to build it with "-fPIC" instead of "-fPIE".
  use_pic = true
}

goproto_library("system_api-bootlockbox-goprotos") {
  proto_in_dir = "dbus/bootlockbox"
  proto_out_dir = "go/src/"
  sources = [ "${proto_in_dir}/boot_lockbox_rpc.proto" ]
}

proto_library("system_api-dlcservice-protos") {
  proto_in_dir = "dbus/dlcservice"
  proto_out_dir = "include/dlcservice/proto_bindings"
  sources = [ "${proto_in_dir}/dlcservice.proto" ]
  standalone = true
}

proto_library("system_api-update_engine-protos") {
  proto_in_dir = "dbus/update_engine"
  proto_out_dir = "include/update_engine/proto_bindings"
  sources = [ "${proto_in_dir}/update_engine.proto" ]
  standalone = true
}

proto_library("system_api-vm_plugin_dispatcher-protos") {
  proto_in_dir = "dbus/vm_plugin_dispatcher"
  proto_out_dir = "include/vm_plugin_dispatcher/proto_bindings"
  sources = [ "${proto_in_dir}/vm_plugin_dispatcher.proto" ]
  standalone = true
}

goproto_library("system_api-vm_plugin_dispatcher-goprotos") {
  proto_in_dir = "dbus/vm_plugin_dispatcher"
  proto_out_dir = "go/src/"
  sources = [ "${proto_in_dir}/vm_plugin_dispatcher.proto" ]
}

proto_library("system_api-u2f-protos") {
  proto_in_dir = "dbus/u2f"
  proto_out_dir = "include/u2f/proto_bindings"
  sources = [ "${proto_in_dir}/u2f_interface.proto" ]
  standalone = true
}

proto_library("system_api-chunneld-protos") {
  proto_in_dir = "dbus/chunneld"
  proto_out_dir = "include/chunneld/proto_bindings"
  sources = [ "${proto_in_dir}/chunneld_service.proto" ]
  standalone = true
}

proto_library("system_api-patchpanel-protos") {
  proto_in_dir = "dbus/patchpanel"
  proto_out_dir = "include/patchpanel/proto_bindings"
  sources = [ "${proto_in_dir}/patchpanel_service.proto" ]
  standalone = true
  use_pic = true
}

goproto_library("system_api-patchpanel-goprotos") {
  proto_in_dir = "dbus/patchpanel"
  proto_out_dir = "go/src/"
  sources = [ "${proto_in_dir}/patchpanel_service.proto" ]
}

proto_library("system_api-anomaly_detector-protos") {
  proto_in_dir = "dbus/anomaly_detector"
  proto_out_dir = "include/anomaly_detector/proto_bindings"
  sources = [ "${proto_in_dir}/anomaly_detector.proto" ]
  standalone = true
}

proto_library("system_api-system_proxy-protos") {
  proto_in_dir = "dbus/system_proxy"
  proto_out_dir = "include/system_proxy/proto_bindings"
  sources = [ "${proto_in_dir}/system_proxy_service.proto" ]
  standalone = true
}

proto_library("system_api-vm_permission_service-protos") {
  proto_in_dir = "dbus/vm_permission_service"
  proto_out_dir = "include/vm_permission_service/proto_bindings"
  sources = [ "${proto_in_dir}/vm_permission_service.proto" ]
  standalone = true
}

proto_library("system_api-minios-protos") {
  proto_in_dir = "dbus/minios"
  proto_out_dir = "include/minios/proto_bindings"
  sources = [ "${proto_in_dir}/minios.proto" ]
  standalone = true
}

proto_library("system_api-dlp-protos") {
  proto_in_dir = "dbus/dlp"
  proto_out_dir = "include/dlp/proto_bindings"
  sources = [ "${proto_in_dir}/dlp_service.proto" ]
  standalone = true
}

proto_library("system_api-hps-protos") {
  proto_in_dir = "dbus/hps"
  proto_out_dir = "include/hps/proto_bindings"
  sources = [ "${proto_in_dir}/hps_service.proto" ]
  standalone = true
}

goproto_library("system_api-hps-goprotos") {
  proto_in_dir = "dbus/hps"
  proto_out_dir = "go/src/"
  sources = [ "${proto_in_dir}/hps_service.proto" ]
}

proto_library("system_api-rmad-protos") {
  proto_in_dir = "dbus/rmad"
  proto_out_dir = "include/rmad/proto_bindings"
  sources = [ "${proto_in_dir}/rmad.proto" ]
  standalone = true
}

proto_library("system_api-fusebox-protos") {
  proto_in_dir = "dbus/fusebox"
  proto_out_dir = "include/fusebox/proto_bindings"
  sources = [ "${proto_in_dir}/fusebox.proto" ]
  standalone = true
}

proto_library("system_api-privacy_screen-protos") {
  proto_in_dir = "dbus/privacy_screen"
  proto_out_dir = "include/privacy_screen/proto_bindings"
  sources = [ "${proto_in_dir}/privacy_screen.proto" ]
  standalone = true
}
