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("traits") { 8 public = [ "traits.h" ] 9 deps = [ 10 "//third_party/abseil-cpp/absl/base:config", 11 "//third_party/abseil-cpp/absl/numeric:bits", 12 "//third_party/abseil-cpp/absl/numeric:int128", 13 ] 14 visibility = [ "//third_party/abseil-cpp/absl/random/*" ] 15} 16 17absl_source_set("distribution_caller") { 18 public = [ "distribution_caller.h" ] 19 deps = [ 20 "//third_party/abseil-cpp/absl/base:config", 21 "//third_party/abseil-cpp/absl/base:fast_type_id", 22 "//third_party/abseil-cpp/absl/utility", 23 ] 24 visibility = [ "//third_party/abseil-cpp/absl/random/*" ] 25} 26 27absl_source_set("fast_uniform_bits") { 28 public = [ "fast_uniform_bits.h" ] 29 deps = [ 30 ":traits", 31 "//third_party/abseil-cpp/absl/base:config", 32 "//third_party/abseil-cpp/absl/meta:type_traits", 33 ] 34 visibility = [ "//third_party/abseil-cpp/absl/random/*" ] 35} 36 37absl_source_set("seed_material") { 38 public = [ "seed_material.h" ] 39 sources = [ "seed_material.cc" ] 40 if (is_win) { 41 # TODO(mbonadei): In the bazel file this is -DEFAULTLIB:bcrypt.lib. 42 libs = [ "bcrypt.lib" ] 43 } 44 deps = [ 45 ":fast_uniform_bits", 46 "//third_party/abseil-cpp/absl/base:core_headers", 47 "//third_party/abseil-cpp/absl/base:dynamic_annotations", 48 "//third_party/abseil-cpp/absl/base:raw_logging_internal", 49 "//third_party/abseil-cpp/absl/strings", 50 "//third_party/abseil-cpp/absl/strings:string_view", 51 "//third_party/abseil-cpp/absl/types:optional", 52 "//third_party/abseil-cpp/absl/types:span", 53 ] 54 visibility = [ "//third_party/abseil-cpp/absl/random/*" ] 55} 56 57absl_source_set("pool_urbg") { 58 public = [ "pool_urbg.h" ] 59 sources = [ "pool_urbg.cc" ] 60 deps = [ 61 ":randen", 62 ":seed_material", 63 ":traits", 64 "//third_party/abseil-cpp/absl/base", 65 "//third_party/abseil-cpp/absl/base:config", 66 "//third_party/abseil-cpp/absl/base:core_headers", 67 "//third_party/abseil-cpp/absl/base:endian", 68 "//third_party/abseil-cpp/absl/base:raw_logging_internal", 69 "//third_party/abseil-cpp/absl/random:seed_gen_exception", 70 "//third_party/abseil-cpp/absl/types:span", 71 ] 72 visibility = [ "//third_party/abseil-cpp/absl/random/*" ] 73} 74 75absl_source_set("explicit_seed_seq") { 76 testonly = true 77 public = [ "explicit_seed_seq.h" ] 78 deps = [ 79 "//third_party/abseil-cpp/absl/base:config", 80 "//third_party/abseil-cpp/absl/base:endian", 81 ] 82 visibility = [ "//third_party/abseil-cpp/absl/random/*" ] 83} 84 85absl_source_set("sequence_urbg") { 86 testonly = true 87 public = [ "sequence_urbg.h" ] 88 deps = [ "//third_party/abseil-cpp/absl/base:config" ] 89 visibility = [ "//third_party/abseil-cpp/absl/random/*" ] 90} 91 92absl_source_set("salted_seed_seq") { 93 public = [ "salted_seed_seq.h" ] 94 deps = [ 95 ":seed_material", 96 "//third_party/abseil-cpp/absl/container:inlined_vector", 97 "//third_party/abseil-cpp/absl/meta:type_traits", 98 "//third_party/abseil-cpp/absl/types:optional", 99 "//third_party/abseil-cpp/absl/types:span", 100 ] 101 visibility = [ "//third_party/abseil-cpp/absl/random/*" ] 102} 103 104absl_source_set("iostream_state_saver") { 105 public = [ "iostream_state_saver.h" ] 106 deps = [ 107 "//third_party/abseil-cpp/absl/meta:type_traits", 108 "//third_party/abseil-cpp/absl/numeric:int128", 109 ] 110 visibility = [ "//third_party/abseil-cpp/absl/random/*" ] 111} 112 113absl_source_set("generate_real") { 114 public = [ "generate_real.h" ] 115 deps = [ 116 ":fastmath", 117 ":traits", 118 "//third_party/abseil-cpp/absl/meta:type_traits", 119 "//third_party/abseil-cpp/absl/numeric:bits", 120 ] 121 visibility = [ "//third_party/abseil-cpp/absl/random/*" ] 122} 123 124absl_source_set("fastmath") { 125 public = [ "fastmath.h" ] 126 deps = [ "//third_party/abseil-cpp/absl/numeric:bits" ] 127 visibility = [ "//third_party/abseil-cpp/absl/random/*" ] 128} 129 130absl_source_set("wide_multiply") { 131 public = [ "wide_multiply.h" ] 132 deps = [ 133 ":traits", 134 "//third_party/abseil-cpp/absl/base:config", 135 "//third_party/abseil-cpp/absl/numeric:bits", 136 "//third_party/abseil-cpp/absl/numeric:int128", 137 ] 138 visibility = [ "//third_party/abseil-cpp/absl/random/*" ] 139} 140 141absl_source_set("nonsecure_base") { 142 public = [ "nonsecure_base.h" ] 143 deps = [ 144 ":pool_urbg", 145 ":salted_seed_seq", 146 ":seed_material", 147 "//third_party/abseil-cpp/absl/base:core_headers", 148 "//third_party/abseil-cpp/absl/container:inlined_vector", 149 "//third_party/abseil-cpp/absl/meta:type_traits", 150 "//third_party/abseil-cpp/absl/types:span", 151 ] 152 visibility = [ "//third_party/abseil-cpp/absl/random/*" ] 153} 154 155absl_source_set("pcg_engine") { 156 public = [ "pcg_engine.h" ] 157 deps = [ 158 ":fastmath", 159 ":iostream_state_saver", 160 "//third_party/abseil-cpp/absl/base:config", 161 "//third_party/abseil-cpp/absl/meta:type_traits", 162 "//third_party/abseil-cpp/absl/numeric:bits", 163 "//third_party/abseil-cpp/absl/numeric:int128", 164 ] 165 visibility = [ "//third_party/abseil-cpp/absl/random/*" ] 166} 167 168absl_source_set("randen_engine") { 169 public = [ "randen_engine.h" ] 170 deps = [ 171 ":iostream_state_saver", 172 ":randen", 173 "//third_party/abseil-cpp/absl/base:endian", 174 "//third_party/abseil-cpp/absl/meta:type_traits", 175 ] 176 visibility = [ "//third_party/abseil-cpp/absl/random/*" ] 177} 178 179absl_source_set("platform") { 180 public = [ 181 "platform.h", 182 "randen_traits.h", 183 ] 184 sources = [ "randen_round_keys.cc" ] 185 deps = [ 186 "//build:chromeos_buildflags", 187 "//third_party/abseil-cpp/absl/base:config", 188 ] 189 visibility = [ "//third_party/abseil-cpp/absl/random/*" ] 190} 191 192absl_source_set("randen") { 193 public = [ "randen.h" ] 194 sources = [ "randen.cc" ] 195 deps = [ 196 ":platform", 197 ":randen_hwaes", 198 ":randen_slow", 199 "//third_party/abseil-cpp/absl/base:raw_logging_internal", 200 ] 201 visibility = [ "//third_party/abseil-cpp/absl/random/*" ] 202} 203 204absl_source_set("randen_slow") { 205 public = [ "randen_slow.h" ] 206 sources = [ "randen_slow.cc" ] 207 deps = [ 208 ":platform", 209 "//third_party/abseil-cpp/absl/base:config", 210 "//third_party/abseil-cpp/absl/base:core_headers", 211 "//third_party/abseil-cpp/absl/base:endian", 212 "//third_party/abseil-cpp/absl/numeric:int128", 213 ] 214 visibility = [ "//third_party/abseil-cpp/absl/random/*" ] 215} 216 217absl_source_set("randen_hwaes") { 218 public = [ 219 "randen_detect.h", 220 "randen_hwaes.h", 221 ] 222 sources = [ "randen_detect.cc" ] 223 deps = [ 224 ":platform", 225 ":randen_hwaes_impl", 226 "//third_party/abseil-cpp/absl/base:config", 227 ] 228 visibility = [ "//third_party/abseil-cpp/absl/random/*" ] 229} 230 231absl_source_set("randen_hwaes_impl") { 232 sources = [ 233 "randen_hwaes.cc", 234 "randen_hwaes.h", 235 ] 236 deps = [ 237 ":platform", 238 "//third_party/abseil-cpp/absl/base:config", 239 "//third_party/abseil-cpp/absl/base:core_headers", 240 "//third_party/abseil-cpp/absl/numeric:int128", 241 ] 242 visibility = [ "//third_party/abseil-cpp/absl/random/*" ] 243} 244 245executable("gaussian_distribution_gentables") { 246 sources = [ "gaussian_distribution_gentables.cc" ] 247 deps = [ 248 "//third_party/abseil-cpp/absl/base:core_headers", 249 "//third_party/abseil-cpp/absl/random:distributions", 250 ] 251 visibility = [ "//third_party/abseil-cpp/absl/random/*" ] 252} 253 254absl_source_set("distribution_test_util") { 255 testonly = true 256 public = [ 257 "chi_square.h", 258 "distribution_test_util.h", 259 ] 260 sources = [ 261 "chi_square.cc", 262 "distribution_test_util.cc", 263 ] 264 deps = [ 265 "//third_party/abseil-cpp/absl/base:config", 266 "//third_party/abseil-cpp/absl/base:core_headers", 267 "//third_party/abseil-cpp/absl/base:raw_logging_internal", 268 "//third_party/abseil-cpp/absl/strings", 269 "//third_party/abseil-cpp/absl/strings:str_format", 270 "//third_party/abseil-cpp/absl/strings:string_view", 271 "//third_party/abseil-cpp/absl/types:span", 272 ] 273 visibility = [ "//third_party/abseil-cpp/absl/random/*" ] 274} 275 276absl_source_set("mock_helpers") { 277 public = [ "mock_helpers.h" ] 278 deps = [ 279 "//third_party/abseil-cpp/absl/base:config", 280 "//third_party/abseil-cpp/absl/base:fast_type_id", 281 "//third_party/abseil-cpp/absl/types:optional", 282 ] 283} 284 285absl_source_set("mock_overload_set") { 286 testonly = true 287 public = [ "mock_overload_set.h" ] 288 deps = [ 289 ":mock_helpers", 290 "//third_party/abseil-cpp/absl/base:config", 291 "//third_party/abseil-cpp/absl/random:mocking_bit_gen", 292 "//third_party/googletest:gtest", 293 ] 294} 295 296# TODO(danilchap): Enable when can be compiled on all chromium bots. 297# nanobenchmark uses platform specific functions to take accurate current time, 298# and fallbacks to clock_gettime. Several chromium configurations lack both 299# dedicated code and the clock_gettime system function. 300# absl_source_set("nanobenchmark") { 301# sources = [ "nanobenchmark.cc" ] 302# deps = [ 303# ":platform", 304# ":randen_engine", 305# "//third_party/abseil-cpp/absl/base:config", 306# "//third_party/abseil-cpp/absl/base:core_headers", 307# "//third_party/abseil-cpp/absl/base:raw_logging_internal", 308# ] 309# } 310 311absl_source_set("uniform_helper") { 312 public = [ "uniform_helper.h" ] 313 deps = [ 314 ":traits", 315 "//third_party/abseil-cpp/absl/base:config", 316 "//third_party/abseil-cpp/absl/meta:type_traits", 317 "//third_party/abseil-cpp/absl/numeric:int128", 318 ] 319 visibility = [ "//third_party/abseil-cpp/absl/random/*" ] 320} 321 322absl_source_set("mock_validators") { 323 public = [ "mock_validators.h" ] 324 deps = [ 325 ":iostream_state_saver", 326 ":uniform_helper", 327 "//third_party/abseil-cpp/absl/base:config", 328 "//third_party/abseil-cpp/absl/base:raw_logging_internal", 329 "//third_party/abseil-cpp/absl/strings", 330 "//third_party/abseil-cpp/absl/strings:string_view", 331 ] 332} 333