1# Copyright 2018 The Chromium Authors 2# Use of this source code is governed by a BSD-style license that can be 3# found in the LICENSE file. 4 5import("//third_party/abseil-cpp/absl.gni") 6 7absl_source_set("random") { 8 public = [ "random.h" ] 9 deps = [ 10 ":distributions", 11 ":seed_sequences", 12 "//third_party/abseil-cpp/absl/random/internal:nonsecure_base", 13 "//third_party/abseil-cpp/absl/random/internal:pcg_engine", 14 "//third_party/abseil-cpp/absl/random/internal:pool_urbg", 15 "//third_party/abseil-cpp/absl/random/internal:randen_engine", 16 ] 17} 18 19absl_source_set("distributions") { 20 public = [ 21 "bernoulli_distribution.h", 22 "beta_distribution.h", 23 "discrete_distribution.h", 24 "distributions.h", 25 "exponential_distribution.h", 26 "gaussian_distribution.h", 27 "log_uniform_int_distribution.h", 28 "poisson_distribution.h", 29 "uniform_int_distribution.h", 30 "uniform_real_distribution.h", 31 "zipf_distribution.h", 32 ] 33 sources = [ 34 "discrete_distribution.cc", 35 "gaussian_distribution.cc", 36 ] 37 deps = [ 38 "//third_party/abseil-cpp/absl/base:base_internal", 39 "//third_party/abseil-cpp/absl/base:config", 40 "//third_party/abseil-cpp/absl/base:core_headers", 41 "//third_party/abseil-cpp/absl/meta:type_traits", 42 "//third_party/abseil-cpp/absl/numeric:bits", 43 "//third_party/abseil-cpp/absl/random/internal:distribution_caller", 44 "//third_party/abseil-cpp/absl/random/internal:fast_uniform_bits", 45 "//third_party/abseil-cpp/absl/random/internal:fastmath", 46 "//third_party/abseil-cpp/absl/random/internal:generate_real", 47 "//third_party/abseil-cpp/absl/random/internal:iostream_state_saver", 48 "//third_party/abseil-cpp/absl/random/internal:traits", 49 "//third_party/abseil-cpp/absl/random/internal:uniform_helper", 50 "//third_party/abseil-cpp/absl/random/internal:wide_multiply", 51 "//third_party/abseil-cpp/absl/strings", 52 ] 53} 54 55absl_source_set("seed_gen_exception") { 56 public = [ "seed_gen_exception.h" ] 57 sources = [ "seed_gen_exception.cc" ] 58 deps = [ "//third_party/abseil-cpp/absl/base:config" ] 59} 60 61absl_source_set("seed_sequences") { 62 public = [ "seed_sequences.h" ] 63 sources = [ "seed_sequences.cc" ] 64 deps = [ 65 ":seed_gen_exception", 66 "//third_party/abseil-cpp/absl/base:config", 67 "//third_party/abseil-cpp/absl/base:nullability", 68 "//third_party/abseil-cpp/absl/random/internal:pool_urbg", 69 "//third_party/abseil-cpp/absl/random/internal:salted_seed_seq", 70 "//third_party/abseil-cpp/absl/random/internal:seed_material", 71 "//third_party/abseil-cpp/absl/strings:string_view", 72 "//third_party/abseil-cpp/absl/types:span", 73 ] 74} 75 76absl_source_set("bit_gen_ref") { 77 public = [ "bit_gen_ref.h" ] 78 deps = [ 79 ":random", 80 "//third_party/abseil-cpp/absl/base:core_headers", 81 "//third_party/abseil-cpp/absl/base:fast_type_id", 82 "//third_party/abseil-cpp/absl/meta:type_traits", 83 "//third_party/abseil-cpp/absl/random/internal:distribution_caller", 84 "//third_party/abseil-cpp/absl/random/internal:fast_uniform_bits", 85 ] 86} 87 88absl_source_set("mock_distributions") { 89 testonly = true 90 public = [ "mock_distributions.h" ] 91 deps = [ 92 ":distributions", 93 ":mocking_bit_gen", 94 "//third_party/abseil-cpp/absl/base:config", 95 "//third_party/abseil-cpp/absl/random/internal:mock_overload_set", 96 "//third_party/abseil-cpp/absl/random/internal:mock_validators", 97 ] 98} 99 100absl_source_set("mocking_bit_gen") { 101 testonly = true 102 public = [ "mocking_bit_gen.h" ] 103 deps = [ 104 ":random", 105 "//third_party/abseil-cpp/absl/base:config", 106 "//third_party/abseil-cpp/absl/base:core_headers", 107 "//third_party/abseil-cpp/absl/base:fast_type_id", 108 "//third_party/abseil-cpp/absl/container:flat_hash_map", 109 "//third_party/abseil-cpp/absl/meta:type_traits", 110 "//third_party/abseil-cpp/absl/random/internal:mock_helpers", 111 "//third_party/abseil-cpp/absl/utility", 112 "//third_party/googletest:gtest", 113 ] 114} 115 116absl_test("distributions_test") { 117 sources = [ "distributions_test.cc" ] 118 deps = [ 119 ":distributions", 120 ":random", 121 "//third_party/abseil-cpp/absl/meta:type_traits", 122 "//third_party/abseil-cpp/absl/numeric:int128", 123 "//third_party/abseil-cpp/absl/random/internal:distribution_test_util", 124 ] 125} 126 127absl_test("mock_distributions_test") { 128 sources = [ "mock_distributions_test.cc" ] 129 deps = [ 130 ":distributions", 131 ":mock_distributions", 132 ":mocking_bit_gen", 133 ":random", 134 "//third_party/abseil-cpp/absl/numeric:int128", 135 ] 136} 137