# Copyright 2018 The Chromium Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

import("//flutter/third_party/abseil-cpp/absl.gni")

absl_source_set("traits") {
  public = [ "traits.h" ]
  deps = [
    "//flutter/third_party/abseil-cpp/absl/base:config",
    "//flutter/third_party/abseil-cpp/absl/numeric:bits",
    "//flutter/third_party/abseil-cpp/absl/numeric:int128",
  ]
  visibility = ["//flutter/third_party/abseil-cpp/absl/random/*"]
}

absl_source_set("distribution_caller") {
  public = [ "distribution_caller.h" ]
  deps = [
    "//flutter/third_party/abseil-cpp/absl/base:config",
    "//flutter/third_party/abseil-cpp/absl/base:fast_type_id",
    "//flutter/third_party/abseil-cpp/absl/utility",
  ]
  visibility = ["//flutter/third_party/abseil-cpp/absl/random/*"]
}

absl_source_set("fast_uniform_bits") {
  public = [ "fast_uniform_bits.h" ]
  deps = [
    ":traits",
    "//flutter/third_party/abseil-cpp/absl/base:config",
    "//flutter/third_party/abseil-cpp/absl/meta:type_traits",
  ]
  visibility = ["//flutter/third_party/abseil-cpp/absl/random/*"]
}

absl_source_set("seed_material") {
  public = [ "seed_material.h" ]
  sources = [ "seed_material.cc" ]
  if (is_win) {
    # TODO(mbonadei): In the bazel file this is -DEFAULTLIB:bcrypt.lib.
    libs = [ "bcrypt.lib" ]
  }
  deps = [
    ":fast_uniform_bits",
    "//flutter/third_party/abseil-cpp/absl/base:core_headers",
    "//flutter/third_party/abseil-cpp/absl/base:dynamic_annotations",
    "//flutter/third_party/abseil-cpp/absl/base:raw_logging_internal",
    "//flutter/third_party/abseil-cpp/absl/strings",
    "//flutter/third_party/abseil-cpp/absl/strings:string_view",
    "//flutter/third_party/abseil-cpp/absl/types:optional",
    "//flutter/third_party/abseil-cpp/absl/types:span",
  ]
  visibility = ["//flutter/third_party/abseil-cpp/absl/random/*"]
}

absl_source_set("pool_urbg") {
  public = [ "pool_urbg.h" ]
  sources = [ "pool_urbg.cc" ]
  deps = [
    ":randen",
    ":seed_material",
    ":traits",
    "//flutter/third_party/abseil-cpp/absl/base",
    "//flutter/third_party/abseil-cpp/absl/base:config",
    "//flutter/third_party/abseil-cpp/absl/base:core_headers",
    "//flutter/third_party/abseil-cpp/absl/base:endian",
    "//flutter/third_party/abseil-cpp/absl/base:raw_logging_internal",
    "//flutter/third_party/abseil-cpp/absl/random:seed_gen_exception",
    "//flutter/third_party/abseil-cpp/absl/types:span",
  ]
  visibility = ["//flutter/third_party/abseil-cpp/absl/random/*"]
}

absl_source_set("explicit_seed_seq") {
  testonly = true
  public = [ "explicit_seed_seq.h" ]
  deps = [
    "//flutter/third_party/abseil-cpp/absl/base:config",
    "//flutter/third_party/abseil-cpp/absl/base:endian",
  ]
  visibility = ["//flutter/third_party/abseil-cpp/absl/random/*"]
}

absl_source_set("sequence_urbg") {
  testonly = true
  public = [ "sequence_urbg.h" ]
  deps = [ "//flutter/third_party/abseil-cpp/absl/base:config" ]
  visibility = ["//flutter/third_party/abseil-cpp/absl/random/*"]
}

absl_source_set("salted_seed_seq") {
  public = [ "salted_seed_seq.h" ]
  deps = [
    ":seed_material",
    "//flutter/third_party/abseil-cpp/absl/container:inlined_vector",
    "//flutter/third_party/abseil-cpp/absl/meta:type_traits",
    "//flutter/third_party/abseil-cpp/absl/types:optional",
    "//flutter/third_party/abseil-cpp/absl/types:span",
  ]
  visibility = ["//flutter/third_party/abseil-cpp/absl/random/*"]
}

absl_source_set("iostream_state_saver") {
  public = [ "iostream_state_saver.h" ]
  deps = [
    "//flutter/third_party/abseil-cpp/absl/meta:type_traits",
    "//flutter/third_party/abseil-cpp/absl/numeric:int128",
  ]
  visibility = ["//flutter/third_party/abseil-cpp/absl/random/*"]
}

absl_source_set("generate_real") {
  public = [ "generate_real.h" ]
  deps = [
    ":fastmath",
    ":traits",
    "//flutter/third_party/abseil-cpp/absl/meta:type_traits",
    "//flutter/third_party/abseil-cpp/absl/numeric:bits",
  ]
  visibility = ["//flutter/third_party/abseil-cpp/absl/random/*"]
}

absl_source_set("fastmath") {
  public = [ "fastmath.h" ]
  deps = [ "//flutter/third_party/abseil-cpp/absl/numeric:bits" ]
  visibility = ["//flutter/third_party/abseil-cpp/absl/random/*"]
}

absl_source_set("wide_multiply") {
  public = [ "wide_multiply.h" ]
  deps = [
    ":traits",
    "//flutter/third_party/abseil-cpp/absl/base:config",
    "//flutter/third_party/abseil-cpp/absl/numeric:bits",
    "//flutter/third_party/abseil-cpp/absl/numeric:int128",
  ]
  visibility = ["//flutter/third_party/abseil-cpp/absl/random/*"]
}

absl_source_set("nonsecure_base") {
  public = [ "nonsecure_base.h" ]
  deps = [
    ":pool_urbg",
    ":salted_seed_seq",
    ":seed_material",
    "//flutter/third_party/abseil-cpp/absl/base:core_headers",
    "//flutter/third_party/abseil-cpp/absl/container:inlined_vector",
    "//flutter/third_party/abseil-cpp/absl/meta:type_traits",
    "//flutter/third_party/abseil-cpp/absl/types:span",
  ]
  visibility = ["//flutter/third_party/abseil-cpp/absl/random/*"]
}

absl_source_set("pcg_engine") {
  public = [ "pcg_engine.h" ]
  deps = [
    ":fastmath",
    ":iostream_state_saver",
    "//flutter/third_party/abseil-cpp/absl/base:config",
    "//flutter/third_party/abseil-cpp/absl/meta:type_traits",
    "//flutter/third_party/abseil-cpp/absl/numeric:bits",
    "//flutter/third_party/abseil-cpp/absl/numeric:int128",
  ]
  visibility = ["//flutter/third_party/abseil-cpp/absl/random/*"]
}

absl_source_set("randen_engine") {
  public = [ "randen_engine.h" ]
  deps = [
    ":iostream_state_saver",
    ":randen",
    "//flutter/third_party/abseil-cpp/absl/base:endian",
    "//flutter/third_party/abseil-cpp/absl/meta:type_traits",
  ]
  visibility = ["//flutter/third_party/abseil-cpp/absl/random/*"]
}

absl_source_set("platform") {
  public = [
    "platform.h",
    "randen_traits.h",
  ]
  sources = [ "randen_round_keys.cc" ]
  deps = [
    "//flutter/third_party/abseil-cpp/absl/base:config",
  ]
  visibility = ["//flutter/third_party/abseil-cpp/absl/random/*"]
}

absl_source_set("randen") {
  public = [ "randen.h" ]
  sources = [ "randen.cc" ]
  deps = [
    ":platform",
    ":randen_hwaes",
    ":randen_slow",
    "//flutter/third_party/abseil-cpp/absl/base:raw_logging_internal",
  ]
  visibility = ["//flutter/third_party/abseil-cpp/absl/random/*"]
}

absl_source_set("randen_slow") {
  public = [ "randen_slow.h" ]
  sources = [ "randen_slow.cc" ]
  deps = [
    ":platform",
    "//flutter/third_party/abseil-cpp/absl/base:config",
    "//flutter/third_party/abseil-cpp/absl/base:core_headers",
    "//flutter/third_party/abseil-cpp/absl/base:endian",
    "//flutter/third_party/abseil-cpp/absl/numeric:int128",
  ]
  visibility = ["//flutter/third_party/abseil-cpp/absl/random/*"]
}

absl_source_set("randen_hwaes") {
  public = [
    "randen_detect.h",
    "randen_hwaes.h",
  ]
  sources = [ "randen_detect.cc" ]
  deps = [
    ":platform",
    ":randen_hwaes_impl",
    "//flutter/third_party/abseil-cpp/absl/base:config",
  ]
  visibility = ["//flutter/third_party/abseil-cpp/absl/random/*"]
}

absl_source_set("randen_hwaes_impl") {
  sources = [
    "randen_hwaes.cc",
    "randen_hwaes.h",
  ]
  deps = [
    ":platform",
    "//flutter/third_party/abseil-cpp/absl/base:config",
    "//flutter/third_party/abseil-cpp/absl/base:core_headers",
    "//flutter/third_party/abseil-cpp/absl/numeric:int128",
  ]
  visibility = ["//flutter/third_party/abseil-cpp/absl/random/*"]
}

executable("gaussian_distribution_gentables") {
  sources = [ "gaussian_distribution_gentables.cc" ]
  deps = [
    "//flutter/third_party/abseil-cpp/absl/base:core_headers",
    "//flutter/third_party/abseil-cpp/absl/random:distributions",
  ]
  visibility = ["//flutter/third_party/abseil-cpp/absl/random/*"]
}

absl_source_set("distribution_test_util") {
  testonly = true
  public = [
    "chi_square.h",
    "distribution_test_util.h",
  ]
  sources = [
    "chi_square.cc",
    "distribution_test_util.cc",
  ]
  deps = [
    "//flutter/third_party/abseil-cpp/absl/base:config",
    "//flutter/third_party/abseil-cpp/absl/base:core_headers",
    "//flutter/third_party/abseil-cpp/absl/base:raw_logging_internal",
    "//flutter/third_party/abseil-cpp/absl/strings",
    "//flutter/third_party/abseil-cpp/absl/strings:str_format",
    "//flutter/third_party/abseil-cpp/absl/strings:string_view",
    "//flutter/third_party/abseil-cpp/absl/types:span",
  ]
  visibility = ["//flutter/third_party/abseil-cpp/absl/random/*"]
}

# TODO(danilchap): Enable when can be compiled on all chromium bots.
# nanobenchmark uses platform specific functions to take accurate current time,
# and fallbacks to clock_gettime. Several chromium configurations lack both
# dedicated code and the clock_gettime system function.
# absl_source_set("nanobenchmark") {
#  sources = [ "nanobenchmark.cc" ]
#  deps = [
#    ":platform",
#    ":randen_engine",
#    "//flutter/third_party/abseil-cpp/absl/base:config",
#    "//flutter/third_party/abseil-cpp/absl/base:core_headers",
#    "//flutter/third_party/abseil-cpp/absl/base:raw_logging_internal",
#  ]
# }

absl_source_set("uniform_helper") {
  public = [ "uniform_helper.h" ]
  deps = [
    ":traits",
    "//flutter/third_party/abseil-cpp/absl/base:config",
    "//flutter/third_party/abseil-cpp/absl/meta:type_traits",
    "//flutter/third_party/abseil-cpp/absl/numeric:int128",
  ]
  visibility = ["//flutter/third_party/abseil-cpp/absl/random/*"]
}
