# Copyright 2017 The Fuchsia 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")

static_library("encoder") {
  sources = [
    "clock.h",
    "encoder.cc",
    "encoder.h",
    "envelope_maker.cc",
    "envelope_maker.h",
    "project_context.h",
    "send_retryer.cc",
    "send_retryer.h",
    "shipping_manager.cc",
    "shipping_manager.h",
    "shuffler_client.cc",
    "shuffler_client.h",
    "system_data.cc",
    "system_data.h",
  ]
  public_configs = [ "//third_party/cobalt:cobalt_config" ]

  deps = [
    "//third_party/cobalt/algorithms/forculus:forculus_encoder",
    "//third_party/cobalt/algorithms/rappor:rappor_encoder",
  ]

  public_deps = [
    ":client_secret",
    "//garnet/public/lib/fxl",
    "//third_party/cobalt:cobalt_proto",
    "//third_party/cobalt/config:cobalt_config_proto",
    "//third_party/cobalt/shuffler:shuffler_service",
    "//third_party/cobalt/util:encrypted_message_util",
    "//third_party/grpc:grpc++",
  ]
}

static_library("client_secret") {
  sources = [
    "client_secret.cc",
    "client_secret.h",
  ]
  configs += [ "//third_party/cobalt:cobalt_config" ]

  deps = [
    "//third_party/cobalt/util/crypto_util",
  ]
}

source_set("unittests") {
  testonly = true

  sources = [
    "client_secret_test.cc",
    "encoder_test.cc",
    "envelope_maker_test.cc",
    "send_retryer_test.cc",
    "shipping_manager_test.cc",
    "shuffler_client_test.cc",
    "system_data_test.cc",
  ]

  deps = [
    ":encoder",
    "//third_party/gflags",
    "//third_party/gtest",
    # Note(rudominer) We need protobuf full here for deserializing ASCII
    # protos as part of the test.
    "//third_party/protobuf:protobuf_full",
  ]

  configs += [
    "//third_party/cobalt:cobalt_config",
  ]
}


