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/random/internal:distribution_caller", 43 "//third_party/abseil-cpp/absl/random/internal:fast_uniform_bits", 44 "//third_party/abseil-cpp/absl/random/internal:fastmath", 45 "//third_party/abseil-cpp/absl/random/internal:generate_real", 46 "//third_party/abseil-cpp/absl/random/internal:iostream_state_saver", 47 "//third_party/abseil-cpp/absl/random/internal:traits", 48 "//third_party/abseil-cpp/absl/random/internal:uniform_helper", 49 "//third_party/abseil-cpp/absl/random/internal:wide_multiply", 50 "//third_party/abseil-cpp/absl/strings", 51 ] 52} 53 54absl_source_set("seed_gen_exception") { 55 public = [ "seed_gen_exception.h" ] 56 sources = [ "seed_gen_exception.cc" ] 57 deps = [ "//third_party/abseil-cpp/absl/base:config" ] 58} 59 60absl_source_set("seed_sequences") { 61 public = [ "seed_sequences.h" ] 62 sources = [ "seed_sequences.cc" ] 63 deps = [ 64 ":seed_gen_exception", 65 "//third_party/abseil-cpp/absl/base:config", 66 "//third_party/abseil-cpp/absl/base:nullability", 67 "//third_party/abseil-cpp/absl/random/internal:pool_urbg", 68 "//third_party/abseil-cpp/absl/random/internal:salted_seed_seq", 69 "//third_party/abseil-cpp/absl/random/internal:seed_material", 70 "//third_party/abseil-cpp/absl/strings:string_view", 71 "//third_party/abseil-cpp/absl/types:span", 72 ] 73} 74 75absl_source_set("bit_gen_ref") { 76 public = [ "bit_gen_ref.h" ] 77 deps = [ 78 ":random", 79 "//third_party/abseil-cpp/absl/base:config", 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:fast_type_id", 107 "//third_party/abseil-cpp/absl/container:flat_hash_map", 108 "//third_party/abseil-cpp/absl/meta:type_traits", 109 "//third_party/abseil-cpp/absl/random/internal:mock_helpers", 110 "//third_party/abseil-cpp/absl/utility", 111 "//third_party/googletest:gtest", 112 ] 113} 114 115absl_test("distributions_test") { 116 sources = [ "distributions_test.cc" ] 117 deps = [ 118 ":distributions", 119 ":random", 120 "//third_party/abseil-cpp/absl/meta:type_traits", 121 "//third_party/abseil-cpp/absl/numeric:int128", 122 "//third_party/abseil-cpp/absl/random/internal:distribution_test_util", 123 ] 124} 125 126absl_test("mock_distributions_test") { 127 sources = [ "mock_distributions_test.cc" ] 128 deps = [ 129 ":distributions", 130 ":mock_distributions", 131 ":mocking_bit_gen", 132 ":random", 133 "//third_party/abseil-cpp/absl/numeric:int128", 134 ] 135} 136